Menggunakan perintah 'dd' untuk membuat stik USB yang dapat di-boot

11

Mengapa gambar ISO dari beberapa rasa Ubuntu dapat dimasukkan ke USB stick dengan perintah dd dan boot berhasil, sementara yang lain rasa tidak? Selain itu sepertinya tergantung pada USB stick tertentu juga. Saya mencoba dengan Ubuntu standar:

$ sudo dd if=./ubuntu.iso of=/dev/sdd bs=8129

Dan itu berfungsi seperti pesona, maksud saya: boot dan instal atau jalankan live Ubuntu. Tetapi ketika saya menggunakan stik USB lain yang disiapkan dengan cara yang sama, gagal boot dengan sistem Operasi tidak menemukan kesalahan BIOS.

Ketika saya mencoba Ubuntu GNOME, maka ia tidak bisa boot dengan kesalahan yang sama seperti pada contoh sebelumnya, terlepas dari satu USB stick yang saya gunakan.

Saya tahu, bahwa ada aplikasi Startup Disk Creator di Ubuntu, tetapi saya telah diyakinkan, bahwa itu hanya fasad GUI untuk perintah dd sederhana , dan saya selalu dapat menggunakan dd untuk membuat stik USB yang dapat di-boot, setidaknya untuk Linux. Apakah aku salah?


sumber
Saya pribadi menggunakan Unetbootin, dan tidak pernah punya masalah.
Tim

Jawaban:

5

Jika Anda menjalankan Startup Disk Creator, Anda akan melihat bahwa ia melakukan tiga (empat) hal:

  1. Format drive
  2. Salin data dari ISO ke drive
  3. (Tambahkan file casper 1 ekstra untuk kegigihan, jika dipilih. ddTidak memberi Anda kegigihan.)
  4. Pasang bootloader

Ini bukan GUI untuk dd(ada GUI untuk dd, tetapi SDC bukan salah satunya). Anda dapat menganggapnya setara dengan metode manual Arch Linux atau Gentoo . Anda harus dapat membuat USB yang dapat di-boot menggunakan sebagian besar ISO instalasi (yang cukup populer) distro saat ini. Ini tidak benar sekitar tiga atau empat tahun yang lalu, ketika saya melihat Arch. Hanya pada tahun 2010 semua ISO Arch mendapatkan fitur ini (di mana Anda dapat menulisnya langsung ke drive USB) - dari 2008 hingga 2010 mereka memiliki gambar USB khusus.

Lebih lanjut, jika Anda ddsebuah drive secara langsung, drive itu hanya dapat dibaca secara efektif hingga Anda memformatnya atau menggunakan ruang yang tersisa. Disk yang dibuat SCD masih dapat digunakan sebagai drive USB, meskipun kontennya tidak dapat diakses dengan mudah dari lingkungan langsung. Jadi, jika Anda dd1GB ISO ke drive USB 8 atau 16 GB, Anda secara efektif meninggalkan ruang yang tersisa kecuali jika langkah-langkah tambahan diambil.


1 Biasanya, sebagian besar gambar langsung menggunakan file SquashFS untuk partisi root . SquashFS adalah read-only, jadi untuk kegigihan, sebuah casper-rwfile dibuat /casper. Saya tidak yakin akan asal usulnya casper. Dari apa yang saya mengerti, ketika boot dengan boot=casperopsi, kernel overlay file casper (membuat satu jika tidak ada) di atas squashfs, sehingga mendapatkan kemampuan menulis. caspertidak harus berupa file, itu juga bisa berupa partisi .

muru
sumber
Apa itu "file casper"? Tolong jelaskan.
@ MikołajBartnicki Saya sendiri tidak terlalu yakin, tetapi saya telah memperbarui jawabannya.
muru
Casper adalah hantu (yang kalian semua tahu). Seperti yang Anda katakan, itu overlay beberapa folder pada sistem file ro. Memeriksa filesystem dari live image yang sedang berjalan dengan ketekunan yang diaktifkan menunjukkan beberapa direktori 'atas' dan 'lebih rendah' ​​yang ada pada sistem baca-saja dan tulis, tetapi muncul sebagai satu pada sistem yang berjalan, agak mirip dengan mount di atas yang sudah folder yang ada
oneindelijk
2

coba dulu:

su -c 'mkfs.vfat /dev/sdc -I'

Untuk membuat disk usb yang dapat di-boot dari file iso menggunakan perintah dd , disk tidak dapat memiliki partisi seperti / dev / sdc1 (satu dari empat kemungkinan partisi utama disk / dev / sdc ). Anda tidak dapat mengkloning blok file iso ke partisi primer, karena dvd atau cd disc tidak memilikinya. Itu sebabnya Anda harus membuat sistem file persis di disk / dev / sdc , bukan di partisi primer.

Selain itu Anda membuat beberapa kesalahan dengan mengetikkan perintah dd .

Coba ini:

su -c 'dd if=/home/user/debian.iso of=/dev/sdc bs=4M;sync;eject /dev/sdc'

perintah Anda tidak benar tanpa mkfs.vfat terlebih dahulu. bisa jika Anda menginstal bootloader juga dan membuat partisi aktif. USB drive lain tidak berfungsi mungkin karena port usb Anda dapat dibagikan dengan port usb Anda yang lain atau Anda tidak memiliki daya untuk bekerja dengan OS usb langsung, mungkin bekerja dengan hdd drive dan disk usb lain yang membutuhkan daya lebih dari biasanya. Daripada konsumsi daya rata-rata jenis perangkat ini (seperti disk hdd dalam kasus eksternal dengan usb dari adaptor sata)

gr8b8
sumber
2

Anda bahkan dapat membuat USB stick bootable cp(sepertinya jauh lebih mudah bagi saya daripada ddatau GUI):

sudo cp path/to/ISO /dev/sdX


Ingat yang /dev/sdXharus diganti dengan nama perangkat blok Anda (misalnya /dev/sdb, /dev/sdc).

Luis Lavaire
sumber
1
Itu benar-benar baru bagi saya. Bersama dengan progress unix.stackexchange.com/a/301329/87264 itu menunjukkan kemajuan juga
Jonas Eberle