Za pomocą polecenia „dd” można utworzyć rozruchową pamięć USB

11

Dlaczego obrazy ISO niektórych odmian Ubuntu można umieścić na pamięci USB za pomocą polecenia dd i pomyślnie uruchomić, a inne nie? Co więcej, wygląda na to, że zależy również od konkretnej pamięci USB. Próbowałem ze standardowym Ubuntu:

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

I działa jak urok, mam na myśli: uruchom i zainstaluj lub uruchom Ubuntu na żywo. Ale kiedy używam innej pamięci USB przygotowanej w ten sam sposób, nie uruchamia się ona z systemem operacyjnym nie znaleziono błędu BIOS.

Kiedy próbuję Ubuntu GNOME, to po prostu nie uruchamia się z takim samym błędem, jak w poprzednim przykładzie, niezależnie od tego, której pamięci USB używam.

Wiem, że w Ubuntu jest aplikacja Startup Disk Creator , ale przekonałem się, że jest to tylko fasada GUI dla prostej komendy dd i zawsze mogę użyć dd do stworzenia bootowalnej pamięci USB, przynajmniej dla Linuksa. Czy się mylę?


źródło
Osobiście używam Unetbootin i nigdy nie miałem problemu.
Tim

Odpowiedzi:

5

Jeśli uruchomisz Kreatora dysków startowych, zauważysz, że robi on trzy (cztery) rzeczy:

  1. Sformatuj dysk
  2. Skopiuj dane z ISO na dysk
  3. (Dodaj dodatkowy plik casper 1 dla trwałości, jeśli jest zaznaczony. ddNie zapewnia trwałości.)
  4. Zainstaluj program ładujący

To nie jest GUI dla dd(istnieją GUI dla dd, ale SDC nie jest jednym z nich). Możesz myśleć o tym jak o działaniu równoważnym z ręcznymi metodami Arch Linuxa lub Gentoo . Powinieneś być w stanie stworzyć bootowalny USB przy użyciu większości (dość popularnych) instalacyjnych ISO dystrybucji. Nie było to prawdą trzy lub cztery lata temu, kiedy spojrzałem na Arch. Dopiero w 2010 r. Wszystkie archiwa ISO uzyskały tę funkcję (gdzie można było zapisać ją bezpośrednio na dysku USB) - w latach 2008–2010 miały specjalne obrazy USB.

Ponadto, jeśli jesteś dddyskiem bezpośrednio, ten dysk jest faktycznie tylko do odczytu, dopóki go nie sformatujesz lub nie wykorzystasz w jakiś sposób pozostałego miejsca. Dysk utworzony przez SCD jest nadal użyteczny jako napęd USB, mimo że zawartość nie jest łatwo dostępna ze środowiska na żywo. Więc jeśli masz dd1 GB ISO na dysk USB 8 lub 16 GB, skutecznie porzucasz pozostałe miejsce, chyba że zostaną podjęte dodatkowe kroki.


1 Zazwyczaj większość obrazów na żywo używa pliku SquashFS dla partycji głównej . SquashFS jest tylko do odczytu, więc dla zachowania trwałości casper-rwtworzony jest plik /casper. Nie jestem pewien pochodzenia casper. Z tego, co rozumiem, po uruchomieniu z boot=casperopcją jądro nakłada plik caspera (tworząc taki, jeśli nie istnieje) na squashfs, aby zyskał możliwość zapisu. caspernie musi być plikiem, może być także partycją .

muru
źródło
Co to jest „plik casper”? Proszę wytłumacz.
@ MikołajBartnicki Sam nie jestem do końca pewien, ale zaktualizowałem odpowiedź.
muru
Casper to duch (który wszyscy znacie). Jak powiedziałeś, nakłada się na niektóre foldery w systemie plików ro. Analiza systemu plików z działającego obrazu na żywo z włączoną funkcją trwałości pokazuje niektóre katalogi „górny” i „dolny”, które istnieją zarówno w systemach tylko do odczytu, jak i zapisu, ale pojawiają się jako jeden w uruchomionym systemie, nieco podobny do podłączenia już istniejący folder
oneindelijk
2

spróbuj najpierw:

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

Aby zrobić bootowalny dysk USB z pliku ISO za pomocą polecenia dd , dysk nie może mieć partycji takich jak / dev / sdc1 (jedna z czterech możliwych podstawowych partycji disk / dev / sdc ). Nie można klonować bloków pliku ISO na partycję podstawową, ponieważ nie ma go również na dysku DVD lub CD. Dlatego musisz stworzyć system plików dokładnie na dysku / dev / sdc , a nie na partycji podstawowej.

Ponadto popełniłeś kilka błędów, wpisując polecenie dd .

Spróbuj tego:

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

twoje polecenie nie poprawi się bez mkfs.vfat. może tak być, jeśli zainstalujesz również bootloader i aktywujesz partycję. Inne dyski USB nie działają, może dlatego, że port USB może być współdzielony z innym portem USB lub nie masz zasilania do działania systemu operacyjnego USB na żywo, prawdopodobnie działającego napędu HDD i innego dysku USB, co wymaga więcej energii niż zwykle. Niż średni pobór mocy tego typu urządzeń (takich jak dyski twarde w zewnętrznej obudowie z USB z adaptera SATA)

gr8b8
źródło
2

Możesz nawet stworzyć bootowalną pamięć USB cp(wydaje mi się to o wiele prostsze niż dddla GUI):

sudo cp path/to/ISO /dev/sdX


Pamiętaj, że /dev/sdXnależy wymienić z nazwy urządzenia blokowego (np /dev/sdb, /dev/sdc).

Luis Lavaire
źródło
1
To było dla mnie naprawdę nowe. Wraz z progress unix.stackexchange.com/a/301329/87264 pokazuje także postęp
Jonas Eberle