Я использовал следующее в прошлом
grep ' ro ' /proc/mounts
В некоторых случаях можно хотеть пропустить любого удаленное монтирование, которое может быть RO дизайном
grep ' ro ' /proc/mounts | grep -v ':'
Также можно хотеть пропустить вещи, которые смонтированы через автомонтирование
grep ' ro ' /proc/mounts | egrep -v 'automount|autofs'
Файл ISO является полным, отформатированным изображением файловой системы. Все cat
или dd
делает, делают поразрядную копию того изображения файловой системы к Вашим целевым медиа.
Нет никакого волшебства, продолжающегося негласно. Подготовка к файловой системе ISO была сделана заранее (часто специализированным инструментом). Все cat
делает, выписывают тот набор байтов. Это не интерпретирует .iso
вообще, и при этом это не понимает, что пытается создать загрузочный съемный носитель вообще.
Это действительно требует, чтобы надлежащая поддержка со стороны драйвера ядра и драйвера устройства сделала write
s работают над этим медиа. Немного "волшебства" продолжается там, так как записываемые оптические носители не управляют точно тем же путем как стандартные жесткие диски. Но то волшебство не включает интерпретацию содержания файла ISO.
Вы могли смонтироваться .iso
файл непосредственно, не записывая его при помощи цикла монтируется (если такая вещь доступна на Вашей ОС). Точно так же можно создать файл, который содержит, например, ext4
файловая система, и Вы могли cat
это к разделу.
Это работает, потому что изображение ISO было обработано сisohybrid
, который устанавливает нормальный syslinux загрузчик в изображение ISO. Это возможно, потому что iso9660 обычно не использует первые несколько секторов изображения, таким образом, более или менее нормальный загрузчик жесткого диска может быть помещен туда. При записи на оптический диск он проигнорирован, и BIOS загружает диск с помощью стандартного метода начальной загрузки CD-ROM el torito. Когда изображение помещается во флеш-накопитель, syslinux загрузочный сектор загружается.