Як / чому кішка записує завантажувальний ISO на пристрій


15

Нещодавно я виявив, що я можу створити завантажувальний USB-ключ із файлу ISO, просто використовуючи cat(або dd).

Я не можу знайти жодної інформації про те, як це працює. Чому б:

cat my.iso > /dev/sdb && sync

взяти цей файл і записати всі файли, які він містить, у завантажувальному форматі, на пристрій?


Я ніколи не думав використовувати catзамість того, ddщоб робити liveUSBs
Роб

3
Це було в інструкціях до "Хвостів", прямому зображенні Tor. Я трохи погуглив (перед тим, як запитати тут), і, здається, що ДД - це те, що люди використовували для подібних речей, але кот, здається, зараз є кращим інструментом. Я думаю, що це простіше, оскільки вам не доведеться турбуватися із зазначенням названих параметрів для деталей вводу / виводу.

Відповіді:


14

Файл ISO - це повне відформатоване зображення файлової системи. Все catабо ddробить це зробити біт для битою копії цього образу файлової системи на цільові засоби масової інформації.

Ніякої магії не відбувається за лаштунками. Підготовка файлової системи ISO була виконана заздалегідь (часто спеціалізованим інструментом). Все, catщо написати, це збірка байтів. Він взагалі не інтерпретує .isoі не розуміє, що намагається створити завантажувальний знімний носій взагалі.
Для writeроботи на цьому носії потрібна належна підтримка ядра та драйвера пристрою . Трохи "магії" там не відбувається, оскільки оптичні носії, що записуються, працюють не зовсім так, як звичайні жорсткі диски. Але ця магія не передбачає інтерпретації вмісту файлу ISO.

Ви можете встановити .isoфайл безпосередньо, не записуючи його, скориставшись петлевим кріпленням (якщо таке є у вашій ОС). Аналогічно, ви можете створити файл, який містить, наприклад, ext4файлову систему, і ви можете catце зробити до розділу.


1
а потім просто переконайтеся, що дані справді написали вам розділ (замість просто завантаженого)
yuyichao

Синхронізація @yuyichao має охоплювати це, правда? Редагувати: Я щойно зрозумів, що відповів на 6-річний коментар
Manchineel

5

Це працює, тому що ізо-зображення було оброблено за допомогою isohybrid, який встановлює звичайний завантажувач syslinux в ізо-образ. Це можливо, тому що iso9660 зазвичай не використовує перші кілька секторів зображення, тому там може бути розміщений більш-менш нормальний завантажувач жорсткого диска. Коли він записується на оптичний диск, він ігнорується, і біос завантажує диск, використовуючи звичайний метод завантаження el torito cdrom. Коли зображення розміщено на флешці, завантажується завантажувальний сектор syslinux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.