Berkas ISO yang sudah terverifikasi tidak berguna selama masih berbaring di harddisk, karena firmware komputer tidak tahu cara mengeksekusinya dari sana. Tugas kita sekarang adalah menyalin isi ISO ke flashdisk sehingga firmware membacanya sebagai perangkat boot. Ada banyak alat untuk ini; kita mulai dari dd yang tersedia di semua sistem Linux, lalu alternatif grafis balenaEtcher, dan Ventoy yang mampu menampung banyak ISO sekaligus. Karena salah satu langkah menimpa seluruh isi flashdisk, kita juga akan berlatih mengenali perangkat target dengan cermat sebelum menulis.
Mengenal Isi Sebuah Berkas ISO #
Berkas ISO bukan sekadar folder ter-zip; format ISO 9660 adalah citra piringan optik yang memuat tabel partisi, bootloader, dan berkas sistem secara berurutan. Penanda standarnya berupa teks CD001 yang selalu berada di offset 32769 (heksadesimal 0x8001) — posisi tetap yang diperiksa firmware dan berbagai alat. Kita bisa mengecek penanda itu pada berkas apa pun dengan file:
truncate -s 1M iso-latihan.iso
printf 'CD001' | dd of=iso-latihan.iso bs=1 seek=32769 conv=notrunc
file iso-latihan.isoOutput yang Dihasilkan:
iso-latihan.iso: ISO 9660 CD-ROM filesystem dataMari kita telaah baris-baris di atas:
- Baris 1 (
truncate -s 1M ...): membuat berkas kosong 1 MiB yang berperan sebagai ISO mini;truncatemembuat berkas tipis (sparse) yang tidak benar-benar memakan ruang. - Baris 2 (
printf 'CD001' | dd ...): menulis lima karakter penanda ke offset 32769. Opsiseek=32769melompat ke offset tersebut,conv=notruncmenjaga ukuran berkas tidak terpotong. - Baris 3 (
file ...): mengenali isi berkas dan menyimpulkan formatnya ISO 9660 dari penanda yang barusan kita tanam.
Membuat bootable USB berarti menyalin citra seperti ini dari byte pertama sampai terakhir ke flashdisk — bukan menyalin berkas ISO ke dalam flashdisk seperti menyalin lagu. Firmware membaca sektor awal perangkat, dan salinan mentah adalah satu-satunya cara menempatkan bootloader tepat di sektor itu.
Mengenali Flashdisk dengan lsblk #
Sebelum menulis apa pun, kita harus yakin perangkat mana yang menjadi target. Perintah lsblk (bisa dijalankan langsung di terminal kita) mendaftar seluruh block device yang tersambung. Berikut contoh tampilan lsblk pada komputer dengan satu harddisk (sda) dan satu flashdisk (sdb) yang baru dicolokkan:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 476.9G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
└─sda2 8:2 0 476.4G 0 part /
sdb 8:16 1 14.9G 0 disk
└─sdb1 8:17 1 14.9G 0 part /media/budi/FLASHDISKDua petunjuk menunjuk sdb sebagai flashdisk: kolom RM bernilai 1 (removable) dan ukurannya 14.9G yang cocok dengan flashdisk 16 GB. Nama sdb berlaku untuk seluruh disk, sedangkan sdb1 adalah satu-satunya partisi di dalamnya. Bila flashdisk sedang ter-mount, lepas dulu mount-nya agar tidak ada proses lain yang menulis ke sana:
sudo umount /dev/sdb1Menulis ISO dengan dd #
Perintah dd menyalin berkas blok demi blok dari masukan ke keluaran. Bentuk yang dipakai untuk membuat bootable USB:
sudo dd if=ubuntu-24.04.5-desktop-amd64.iso of=/dev/sdb bs=4M status=progress oflag=syncBedah tiap bagiannya:
if=...(input file): berkas ISO sumber yang sudah diverifikasi pada Chapter Persiapan Instalasi.of=/dev/sdb(output file): seluruh flashdisk — bukan partisisdb1— karena bootloader harus ditempatkan mulai sektor pertama disk.bs=4M: ukuran blok penyalinan 4 MiB; blok besar membuat proses jauh lebih cepat daripada satu byte demi satu byte.status=progress: menampilkan perkembangan penyalinan di layar, karena tanpa opsi iniddbekerja dalam diam total.oflag=sync: memaksa setiap blok benar-benar ditulis ke perangkat sebelum lanjut, mencegah isi tertinggal di cache saat kita mencabut flashdisk.
Karena dd sungguhan menimpa perangkat fisik, mari kita amati mekanismenya secara aman dengan berkas biasa sebagai pengganti flashdisk:
printf 'byte-byte image iso contoh\n' > iso-sumber.iso
dd if=iso-sumber.iso of=usb-tiruan.img bs=4M status=progress oflag=sync
sha256sum iso-sumber.iso usb-tiruan.imgOutput yang Dihasilkan:
22c180fc80c3567d2370bfe0513592a3bbbfa90ba8e94779b9f28fdf7aa3fbf0 iso-sumber.iso
22c180fc80c3567d2370bfe0513592a3bbbfa90ba8e94779b9f28fdf7aa3fbf0 usb-tiruan.imgBaris pertama membuat ISO mini, baris kedua menyalinnya ke usb-tiruan.img yang berperan sebagai flashdisk, dan baris ketiga menghitung checksum kedua berkas. Hash yang sama persis membuktikan salinan identik byte demi byte — persis yang dd lakukan pada flashdisk asli. Statistik records in/out yang dd cetak di layar tidak muncul di sini karena dicetak ke stderr, bukan stdout. Setelah proses nyata selesai, jalankan sync sekali lagi lalu cabut flashdisk; dokumentasi resmi dd ada di https://man7.org/linux/man-pages/man1/dd.1.html
.
Alternatif Grafis: balenaEtcher dan Ventoy #
dd universal tetapi tanpa belas kasihan pada kesalahan ketik. balenaEtcher membungkus pekerjaan yang sama dalam tiga tombol: Flash from file untuk memilih ISO, Select target untuk memilih perangkat (daftar targetnya sudah disaring dari disk sistem), lalu Flash! — verifikasi hasil bahkan dijalankan otomatis setelah penyalinan.
Ventoy bekerja dengan cara yang berbeda: alat ini dipasang sekali ke flashdisk, dan setelah itu kita tinggal menyalin berbagai ISO ke flashdisk sebagai berkas biasa. Saat boot, menu Ventoy menampilkan daftar ISO tersebut untuk dipilih.
| Alat | Cara kerja | Kelebihan |
|---|---|---|
dd | menyalin mentah dari terminal | ada di setiap Linux tanpa aplikasi tambahan |
| balenaEtcher | aplikasi GUI tiga tombol | menyaring disk sistem, verifikasi otomatis |
| Ventoy | memasang bootloader ke flashdisk | menampung banyak ISO sekaligus, cukup salin berkas |
Flashdisk yang berisi ISO siap boot kini menunggu di saku. Langkah berikutnya adalah menyalakan komputer darinya dan menjalani alur instalasi sungguhan — materi Chapter Instalasi Linux di Komputer.