Dlaczego „dd” nie działa przy tworzeniu rozruchowego USB?

36

Ostatnio chciałem stworzyć bootowalny USB z Linux-em miętowym. Odkryłem, że istnieje wiele sprzecznych porad / doświadczeń dotyczących tego, czy można użyć polecenia „dd” do utworzenia rozruchowego USB. Postanowiłem pobrać plik ISO i spróbować. Chociaż dd zdecydowanie umieścił obraz na pamięci USB, nie można go było uruchomić. Więc moje pytanie brzmi: jaki jest magiczny składnik, który sprawi, że to zadziała lub dlaczego to podejście utrzymało się, jeśli nie działa?

To jest polecenie, którego użyłem,

dd if=/mint/iso/image of=/dev/sdb1 oflag=direct 
jdowner
źródło
@sawdust, gdy twierdzisz, że zamieszczone odpowiedzi są „nie iść”, ten artykuł ( community.linuxmint.com/tutorial/view/744 ) wskazuje, że jest to poprawna procedura.
Dave G
1
@DaveG - Interesujące, najwyraźniej „dd” to użyteczne polecenie, ponieważ plik źródłowy to „Hybrydowy obraz ISO”. Ale nie jest to ogólna procedura dla każdego ISO . Być może to rozróżnienie jest przyczyną napotkania sprzecznego doradcy.
trociny
@sawdust dzięki za dodatkowe wyjaśnienia na ten temat.
Dave G.
Możesz mieć system na patyku, który będzie używany w systemie rozruchowym EFI - ale twoja maszyna jest skonfigurowana do używania „klasycznego” rozruchu. Tak widziane z pamięcią USB Linux Mint.
David Tonhofer,
Oto proste / genialne obejście dla opornych obrazów ISO (opartych na Ubuntu Live ISO): 1) Formatuj pamięć tak, aby istniał system plików (powiedzmy) „/ dev / sdX1”, 2) Zamontuj pamięć jako „/ mnt / usb ”na przykład 3) Zainstaluj grub2 na patyku:, grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX4) Skopiuj wcześniej pobrany obraz ISO (na przykład„ foolinux.iso ”) na patyk: cp foolinux.iso /mnt/usb/5) Utwórz plik„ /mnt/usb/boot/grub2/grub.cfg ”, który buty linux z obrazu ISO obecnego na patyku (ciąg dalszy)
David Tonhofer

Odpowiedzi:

32

Zapisujesz obraz na partycji 1 / dev / sdb

Zmień to na następujące polecenie:

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

informacje te zostały uzyskane stąd

Dave G.
źródło
2
Robię: sudo dd if =. / Debian-8.4.0-powerpc-DVD-1.iso of = / dev / rdisk3 bs = 1m i nie można go uruchomić, jakieś pomysły?
Yusufk,
Chciałbym rdisk3 partycję lub surowy dysk? Próbujesz zapisać obraz na określonej partycji
Dave G
1
Robię / dev / sdb i wciąż nie można go uruchomić
holms
rdisk3 to trzeci dysk na komputerze Mac. Mam ten sam problem co Yusufk. Musisz sprawdzić, czy jest to związane z UEFI.
gavit
11

Skopiowałeś obraz na pierwszą partycję. Spróbuj skopiować do / dev / sdb zamiast / dev / sdb1.

Rzeczywisty mechanizm różni się nieco w zależności od typu obrazu, którego używasz, ale w przypadku prostych obrazów DOS / MBR musisz uzyskać prawidłową tabelę partycji (z partycją startową oznaczoną jako bootowalną, a MBR - częścią początkowe 512 bajtów, które nie są tablicą partycji - zawierające początkowy kod rozruchowy.

Kristof Provost
źródło
Chciałbym zauważyć, że zamiast próbować ponownie skopiować cały ISO na inną partycję, wystarczy ustawić flagę rozruchową na partycji, na którą pierwotnie skopiowałeś obraz (może to być wskazane w tej odpowiedzi)
GrayedFox
2

Z mojego doświadczenia z inną dystrybucją Linuksa, wszystko, co powinieneś zrobić, to zmienić plik modułu ładującego syslinux i zmodyfikować go tak, aby uruchamiał USB. Bardziej szczegółowe informacje na ten temat można znaleźć na wiki syslinux .

Zobacz także tę wyszukiwarkę Google .

Jacob J Daniels
źródło
1

Może być konieczne zapisanie BPB w bootloaderze. Zobacz post Dexa z piątek 24 kwietnia 2009 09:06 o godzinie http://f.osdev.org/viewtopic.php?f=1&t=19681

Istotą tego jest to, że „jeśli emulacja dyskietki [twoje oprogramowanie układowe USB] i nie masz BPB, NIE uruchomi się”

Uzbrojony w tę radę udało mi się rozwiązać ten problem. Używam linuxa, więc moim poleceniem dd było:

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

Będziesz chciał zastąpić sdb urządzeniem USB. Możesz go znaleźć, uruchamiając

ls -l /dev/ | grep sd

przed i po włożeniu USB podczas działania systemu Linux. Jeśli otrzymasz np. Sdb1 i sdb, wybierz opcję nieindeksowaną.

definiować
źródło
0

Czy upewniłeś się, że Twoja płyta główna jest ustawiona na rozruch z urządzenia USB, zanim spróbuje się uruchomić z dysku twardego? Sądzę, że to może być twój jedyny problem - nie ma wiele do wykorzystania, ddjak widać.

Eli Sand
źródło
1
To był problem, o którym myślałem, zwłaszcza że pracowałem na starym komputerze. Więc kiedy to nie działało na mojej maszynie docelowej, ustawiłem kolejność rozruchu na moim laptopie wifes (shh, nie mów jej) i też nie uruchomiło się z tego.
0

Kilka razy spotkałem się z tym problemem.

To, co według mnie działa, jest dla mnie przez większość czasu, to najpierw zerowanie dysku.

  1. Zmień X na literę lub numer dysku, aby go znaleźć:

    • Prochowiec: diskutil list
    • Linux: lsblk
  2. Zero napełnij dysk

    • Prochowiec: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. ponownie zrób zdjęcie

(Wydaje mi się, że rozmiary bloku 4meg są najszybsze)

Andre Helberg
źródło