Baru-baru ini saya menemukan bahwa saya dapat membuat kunci USB yang dapat di-boot dari file ISO hanya dengan menggunakan cat
(atau dd
).
Saya tidak dapat menemukan informasi tentang cara kerjanya. Kenapa harus:
cat my.iso > /dev/sdb && sync
ambil file itu dan tulis semua file yang ada di dalamnya, dalam format yang dapat di-boot, ke perangkat?
cat
di tempatdd
ketika membuat liveUSBsJawaban:
File ISO adalah gambar sistem file yang lengkap, diformat. Semua
cat
ataudd
tidak adalah melakukan salinan bit-untuk-bit dari gambar sistem file itu ke media target Anda.Tidak ada keajaiban yang terjadi di balik layar. Persiapan sistem file ISO dilakukan sebelumnya (seringkali oleh alat khusus). Yang harus
cat
dilakukan adalah menulis koleksi byte keluar. Itu tidak menafsirkan.iso
sama sekali, juga tidak mengerti bahwa itu mencoba membuat media yang dapat dilepas sama sekali.Itu memang membutuhkan dukungan yang tepat dari kernel dan driver perangkat untuk membuat
write
s bekerja di media itu. Sedikit "keajaiban" terjadi di sana, karena media optik yang dapat ditulis tidak beroperasi dengan cara yang persis sama dengan hard drive konvensional. Tapi sihir itu tidak melibatkan menafsirkan isi file ISO.Anda dapat memasang
.iso
file secara langsung tanpa membakarnya dengan menggunakan loop mount (jika hal seperti itu tersedia di OS Anda). Demikian pula, Anda dapat membuat file yang berisi misalnya sistemext4
file, dan Anda bisa melakukannyacat
ke partisi.sumber
Ini berfungsi karena gambar iso diproses dengan
isohybrid
, yang menginstal boot loader syslinux normal ke gambar iso. Ini dimungkinkan karena iso9660 biasanya tidak menggunakan beberapa sektor pertama dari gambar, sehingga boot loader hard disk yang lebih atau kurang normal dapat ditempatkan di sana. Ketika dibakar ke disk optik, disk tersebut diabaikan dan BIOS mem-boot disk menggunakan metode boot el torito cdrom konvensional. Ketika gambar ditempatkan pada flash drive, sektor boot syslinux dimuat.sumber