Запретить Windows 10 отформатировать ext4 раздел на pendrive
Я использовал для создания двух разделов на pendrives, которые будут использоваться в Windows или GNU/Linux.
Первый раздел я бы отформатировал с помощью ntfs, второй - с помощью ext4. Таким образом, Windows не будет видеть второй раздел и не будет запрашивать форматирование при подключении.
Так как одно из последних обновлений для Windows 10, этот трюк больше не работает.
Эти pendrives, о которых я говорю, даны учителям в школах, которые используют случайные дистрибутивы GNU / Linux, но дома используют Windows 10. Когда они возвращаются в школу из дома, они понимают, что раздел ext4 исчез, поскольку они только что нажали ' да, когда Windows попросила отформатировать раздел.
Я пытался спрятать второй раздел с помощью parted, но не могу найти нужный ключ.
Что я должен сделать, чтобы скрыть / защитить ext4
раздел на pendrive от Windows 10?
2 ответа
1. UDF
может заменить ext4
защитить раздел в стиле linux
- Проблема в том, что Windows 10 изменилась с игнорирования второго раздела с Linux
ext4
Файловая система для подсказки пользователю формат его. - Windows 10 не предлагает пользователю отформатировать UDF, универсальный формат диска.
UDF описывается в следующих ссылках,
- https://en.wikipedia.org/wiki/Universal_Disk_Format
- http://tanguy.ortolo.eu/blog/article93/usb-udf
- Полная совместимость с Linux, Windows и MacOS, прокрутите вниз до "UDF"
UDF предоставляет обходной путь, который помогает защитить раздел в стиле linux
- ссылки и
- индивидуальные разрешения для файлов и каталогов.
Можно даже использовать UDF в casper-rw
раздел постоянного живого диска, показанный на следующем снимке экрана Lubuntu 16.04.1 LTS,
команды
Установите udftools при необходимости
sudo apt-get install udftools
Создать таблицу разделов с
gparted
или жеgnome-disks
Стереть запутанные данные с
dd
(Рискованно!)sudo dd if=/dev/zero of=/dev/sdxn bs=1M count=1 # wipe first MiB
где x - буква диска, а n - номер раздела. Проверьте и дважды проверьте, что все правильно, прежде чем нажать клавишу Enter, чтобы запустить
dd
командная строка!Создать файловую систему UDF (рискованно!)
sudo mkudffs -b 512 --media-type=hd --lvid=my-label /dev/sdxn
где x - буква диска, а n - номер раздела. Проверьте и дважды проверьте, что все правильно, прежде чем нажать клавишу Enter!
Резервное копирование
Но может быть трудно найти хорошие инструменты для ремонта UDF. Может быть, Windows может исправить некоторые ошибки. Поэтому важно регулярно создавать резервные копии содержимого, чтобы оно не потерялось, если файловая система повреждена.
2. ext4
в файле и монтировать цикл, чтобы использовать его
Если вам нужен ext4, вы можете поместить его в файл и смонтировать цикл, чтобы использовать его из linux. Я не думаю, что Windows потрудится посмотреть в файл.
Этот метод такой же, как для файла casper-rw для сохранения.
Пример:
Создать точки монтирования (только один раз)
sudo mkdir -p /mnt/lp1 sudo mkdir -p /mnt/sd1
Смонтируйте раздел, на котором вы собираетесь создать файл.
sudo mount /dev/sdxn /mnt/sd1
где x - буква диска, а n - номер раздела.
Создать файл. В файловой системе FAT32 максимальный размер файла 4 ГБ, но в NTFS и UDF размер ограничен размером раздела.
Следующая командная строка создаст пустой файл с размером (bs * count, в данном случае 1MiB*8KiB) = 8GiB.
sudo dd if=/dev/zero of=/mnt/sd1/linux-fs bs=1M count=8K
Создать файловую систему ext4 в файле
sudo mkfs.ext4 /mnt/sd1/linux-fs
Чтобы использовать файл в Linux, подключите его циклично (вы можете предоставить конечному пользователю скрипт или файл рабочего стола),
sudo mount -o loop /mnt/sd1/linux-fs /mnt/lp1
или, может быть, вы бы предпочли что-то подобное,
sudo mount -o defaults,users,loop /mnt/sd1/linux-fs /mnt/lp1
Я предполагаю, что вы уже создали структуру каталогов, владельцев и разрешений в разделе ext4, и такая же структура должна работать и в этом файле ext4.
Содержимое будет доступно через точку монтирования /mnt/lp1
Это означает, что вы и конечный пользователь можете читать и записывать файлы и каталоги, как файловая система ext4 в разделе. Но Windows не предлагает пользователю формат его.
Решение
Как правильно сказал sudodus :
Проблема в том, что Windows 10 перешла от игнорирования второго раздела с файловой системой linux ext4 к запросу пользователя на его форматирование.
В то же время кажется, что ваш стандартный компьютер с Windows поставляется со скрытыми разделами (efi, recovery, ...) по умолчанию, поэтому определенно есть способ пометить раздел так, чтобы Windows его игнорировала. Вот что сработало для меня:
- Создайте таблицу разделов GPT.
- Установите тип раздела ваших разделов Linux на «базовые данные Microsoft».
- Добавьте к этому разделу атрибут «скрытый» (как предлагается здесь).
Вы можете выполнять второй и третий шаги в любом порядке, но второй шаг кажется необходимым. Судя по всему, Microsoft предпочла игнорировать атрибуты разделов с типами разделов, отличными от Microsoft.
Команды (используя gdisk)
Вот как вы бы разделили пустой диск на
/dev/sdb
с двумя перегородками. Первый раздел будет виден Windows, второй раздел будет скрыт. Обратите внимание, что это инструкции по форматированию диска. Вы потеряете все данные, которые ранее хранили на этом конкретном устройстве.
$ sudo gdisk /dev/sdb # You might want to use a different disk
GPT fdisk (gdisk) version 1.0.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-123404254, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-123404254, default = 123404254) or {+-}size{KMGTP}: +30G
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'
Command (? for help): n
Partition number (2-128, default 2):
First sector (34-123404254, default = 62916608) or {+-}size{KMGTP}:
Last sector (62916608-123404254, default = 123404254) or {+-}size{KMGTP}:
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'
Command (? for help): x
Expert command (? for help): a
Partition number (1-2): 2
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount
Attribute value is 0000000000000000. Set fields are:
No fields set
Toggle which attribute field (0-63, 64 or <Enter> to exit): 62
Have enabled the 'hidden' attribute.
Attribute value is 4000000000000000. Set fields are:
62 (hidden)
Toggle which attribute field (0-63, 64 or <Enter> to exit):
Expert command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.