Mengapa 'dd' tidak berfungsi untuk membuat USB yang dapat di-boot?

36

Baru-baru ini saya ingin membuat USB Linux bootable. Saya menemukan bahwa ada banyak saran / pengalaman yang saling bertentangan tentang apakah perintah 'dd' dapat digunakan untuk membuat USB yang dapat di-boot. Saya memutuskan untuk mengunduh ISO dan mencoba. Sementara dd pasti meletakkan gambar pada stik USB itu tidak bisa di-boot. Jadi pertanyaan saya adalah apa bahan ajaib yang akan membuat ini bekerja atau mengapa pendekatan ini bertahan jika tidak berhasil?

Ini adalah perintah yang saya gunakan,

dd if=/mint/iso/image of=/dev/sdb1 oflag=direct 
kegirangan
sumber
@sawdust ketika Anda menyatakan bahwa jawaban yang diposting adalah "tidak jalan", artikel ini ( community.linuxmint.com/tutorial/view/744 ) menunjukkan bahwa ini adalah prosedur yang benar.
Dave G
1
@DaveG - Menarik, tampaknya 'dd' adalah perintah yang dapat digunakan jika file sumber adalah "gambar ISO Hybrid". Tetapi ini bukan prosedur umum untuk setiap iso . Mungkin perbedaan itu adalah alasan nasihat yang saling bertentangan yang ditemui.
serbuk gergaji
@sawdust terima kasih atas klarifikasi tambahan untuk itu.
Dave G
Anda mungkin memiliki sistem-on-a-stick yang akan digunakan dalam sistem boot EFI - tetapi mesin Anda dikonfigurasi untuk menggunakan boot "klasik". Begitu terlihat dengan Linux Mint USB stick.
David Tonhofer
Berikut ini adalah solusi sederhana / jenius untuk gambar iso bandel (berdasarkan Ubuntu Live ISO): 1) Format stick sehingga ada sistem file pada (katakanlah "/ dev / sdX1", 2) Mount stick sebagai "/ mnt / usb "misalnya, 3) Instal grub2 on stick grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX:, 4) Salin gambar ISO yang sebelumnya diunduh (misalnya" foolinux.iso ") ke stick: cp foolinux.iso /mnt/usb/5) Buat" /mnt/usb/boot/grub2/grub.cfg "file yang mem-boot linux dari image ISO yang ada di stick (cont)
David Tonhofer

Jawaban:

32

Anda sedang menulis gambar ke partisi 1 dari / dev / sdb

Ubah ini ke perintah berikut:

dd if=/mint/iso/image of=/dev/sdb oflag=direct

informasi ini diperoleh dari sini

Dave G
sumber
2
Saya sedang melakukan: sudo dd if =. / Debian-8.4.0-powerpc-DVD-1.iso dari = / dev / rdisk3 bs = 1m dan tidak bisa di-boot, ada ide?
Yusufk
Saya akan rdisk3 partisi atau disk mentah? Anda mencoba untuk menulis gambar ke partisi tertentu
Dave G
1
Saya sedang melakukan / dev / sdb dan itu masih belum bisa di-boot
holms
rdisk3 adalah disk ke-3 pada mac afaik. Saya memiliki masalah yang sama dengan Yusufk. Perlu memeriksa apakah ini terkait dengan UEFI.
gavit
11

Anda menyalin gambar ke partisi pertama. Coba salin ke / dev / sdb daripada / dev / sdb1.

Mekanisme aktual bervariasi sedikit tergantung pada jenis gambar yang Anda gunakan, tetapi untuk gambar DOS / MBR sederhana Anda perlu mendapatkan tabel partisi yang benar (dengan partisi yang dapat di-boot ditandai sebagai yang dapat di-boot, dan MBR - bagian dari 512 byte awal yang bukan tabel partisi - berisi kode boot awal.

Kristof Provost
sumber
Saya akan mencatat bahwa alih-alih mencoba menyalin seluruh ISO lagi ke partisi lain, cukup mengatur flag boot pada partisi yang Anda salin sebelumnya juga cukup (seperti yang
ditunjukkan
2

Dari pengalaman saya dengan distro Linux lain, yang harus Anda lakukan hanyalah mengubah file syslinux boot loader dan memodifikasinya untuk mem-boot USB. Ada informasi lebih rinci tentang ini di wiki syslinux .

Lihat juga pencarian Google ini .

Jacob J Daniels
sumber
1

Anda mungkin perlu memiliki BPB yang ditulis ke dalam bootloader Anda. Lihat posting Dex dari Jumat 24 April 2009 9:06 di http://f.osdev.org/viewtopic.php?f=1&t=19681

Intinya adalah bahwa "jika pengguna [firmware usb Anda] emulasi floppy dan Anda tidak memiliki BPB, itu TIDAK akan bisa boot"

Berbekal saran itu, saya bisa menyelesaikan masalah ini. Saya menggunakan linux, jadi perintah dd saya adalah:

sudo dd bs=512 count=2880 if=IMG.bin of=/dev/sdb

Anda ingin mengganti sdb dengan perangkat usb Anda. Anda dapat menemukannya dengan menjalankan

ls -l /dev/ | grep sd

sebelum dan sesudah memasukkan usb Anda saat linux sedang berjalan. Jika Anda mendapatkan mis. Sdb1 dan sdb, pilih opsi yang tidak diindeks.

menetapkan
sumber
0

Sudahkah Anda memastikan bahwa motherboard Anda diatur untuk boot dari perangkat USB sebelum mencoba mem-boot dari HDD Anda? Saya kira itu mungkin satu-satunya masalah Anda - tidak banyak yang bisa digunakan ddseperti yang Anda lihat.

Eli Sand
sumber
1
Ini adalah masalah yang saya pikirkan, terutama karena saya bekerja pada komputer lama. Jadi ketika itu tidak bekerja pada mesin target saya, saya mengatur urutan boot pada laptop wifes saya (shh, jangan katakan padanya) dan itu tidak bisa boot dari itu juga.
0

Saya juga mengalami masalah ini beberapa kali.

Apa yang saya temukan yang paling cocok untuk saya adalah mengisi nol drive terlebih dahulu.

  1. Ubah X ke huruf atau nomor drive Anda, untuk menemukannya:

    • Mac: diskutil list
    • Linux: lsblk
  2. Isi nol drive

    • Mac: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. dd gambar Anda lagi

(Ukuran blok 4meg tampaknya menjadi yang tercepat bagi saya)

Andre Helberg
sumber