Wydaje mi się, że wypalanie obrazów ISO na krążkach CD/DVD już od jakiegoś czasu stało się passé. Wprawdzie istnieją wyjątki, ale czy ktoś jeszcze wypala krążki po to aby przetestować nowe wydanie jakiejś dystrybucji, czy zainstalować system?
Do takich wyjątków należy między innymi brak możliwości bootowania z USB w opcjach BIOSU w starszych komputerach, ale i na to jest rada, rozie opisał ostatnio jak uruchomić komputer z USB, gdy BIOS nie ma opcji bootowanie z USB. Szkoda, że nie znałem tego rozwiązania kilka lat temu, dzisiaj już coraz trudniej spotkać takie komputery, rozwiązanie jednak jak najbardziej przydatne.
Uruchamianie systemu z pendrive ma co najmniej kilka zalet w porównaniu z bootowaniem z płyty. Odczyt danych z pendrive jest szybszy, cichy (nie słychać szumu wirującego krążka w napędzie), na pendrive można również mieć system plików z zapisem. Krążki CDR szczególnie te tańsze mają małą trwałość, rysują się i są mniej wygodne i praktyczne niż pendrive.
Dzisiejszy wpis ma na celu pokazać jak przygotować pendrive z zainstalowanym GRUB, rozwiązanie to pozwala na bootowanie obrazów ISO bez ich instalacji, czy rozpakowywania.
W poniższym HOWTO założono, że pendrive identyfikowany jest jako /dev/sdX1. Na różnych systemach i zależnie od ilości podłączonych dysków X będzie zastąpione literą b, c, d i tak dalej. Aby sprawdzić jak identyfikowany jest pendrive można posłużyć się poleceniem fdisk -l wydanym z poziomu superusera. Należy zwrócić na to uwagę bo pomyłka na tym polu może skutkować niemożnością uruchomienia systemu na komputerze, albo utratą danych.
Krok 1: pendrive powinien wyposażony być w system plików FAT32, można to sobie wyklikać w GParted, albo użyć polecenia:
# mkfs.vfat -n multiboot /dev/sdX1
Krok 2: po formatowaniu należy zamontować urządzenie i przejść do jego punktu montowania, oraz utworzyć tam dwa nowe foldery:
$ cd PUNKT_MONTOWANIA
$ mkdir boot iso
Krok 3: teraz pora na instalację GRUBA w głównym rekordzie startowym (MBR):
# grub-install --force --no-floppy --boot-directory=PUNKT_MONTOWANIA/boot /dev/sdX
Krok 4: teraz pora na pobranie obrazów ISO interesujących nas dystrybucji, których możliwość uruchamiania z pendrive jest nam potrzebna, obrazy należy umieścić w folderze iso na pendrive. W przykładzie posłużono się następującymi dystrybucjami:
- TAILS – The Amnesic Incognito Live System – bazująca na Debianie dystrybucja wyposażona w narządzia zapewniające bezpieczeństwo i anonimowość.
- GParted Live CD – graficzny edytor i konfigurator dysków i partycji.
- Debian GNU/Linux – instalatory Debiana w wersji 32 i 64 bitowej.
- Tiny Core – minimalistyczna dsytrybucja Linuxa.
- Darik’s Boot and Nuke (DBAN) – narzędzie do bezpiecznego usuwania danych z dysków.
- Memtest86+ – znany i ceniony program do testowania pamięci RAM.
Można posłużyć się każdą inna dystrybucją, należy jednak odpowiednio zmodyfikować plik konfiguracyjny GRUB.
Krok 5: teraz w katalogu boot na pendrive należy utworzyć plik konfiguracyjny GRUBA o nazwie grub.cfg, oraz odpowiednio go zmodyfikować w zależności jakie systemy zamierzamy uruchamiać:
# Config for GNU GRand Unified Bootloader (GRUB)
# /boot/grub/grub.cfg
# Timeout for menu
#set timeout=30
# Default boot entry
#set default=0
# Menu Colours
set menu_color_normal=white/black
set menu_color_highlight=white/green
# Boot ISOs
menuentry "TAILS - The Amnesic Incognito Live System" {
set iso="/iso/tails-i386-0.15.iso"
loopback loop $iso
linux (loop)/live/vmlinuz boot=live config live-media=removable nopersistent noprompt quiet timezone=America/Toronto block.events_dfl_poll_msecs=1000 splash nox11autologin module=Tails findiso=$iso quiet_
initrd (loop)/live/initrd.img
}
menuentry "GParted Live CD" {
set iso="/iso/gparted-live-0.14.0-1.iso"
loopback loop $iso
linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=$iso
initrd (loop)/live/initrd.img
}
menuentry "Debian Wheezy AMD64 Installer" {
set iso="/iso/debian-installer-wheezy-amd64-mini.iso"
loopback loop $iso
linux (loop)/linux
initrd (loop)/initrd.gz
}
menuentry "Debian Wheezy i386 Installer" {
set iso="/iso/debian-installer-wheezy-i386-mini.iso"
loopback loop $iso
linux (loop)/linux
initrd (loop)/initrd.gz
}
# Starting with v4.4rc3 it is now possible to load the embedded extensions inside an iso image file.
# See http://forum.tinycorelinux.net/index.php/topic,12786.msg69982.html#msg69982
menuentry "Tiny Core" {
set iso="/iso/TinyCore-current.iso"
loopback loop $iso
linux (loop)/boot/vmlinuz cde waitusb=5 iso=/mnt/sdb1$iso
initrd (loop)/boot/core.gz
}
menuentry "Darik's Boot and Nuke (DBAN)" {
set iso="/iso/dban-2.2.7_i586.iso"
loopback loop $iso
linux (loop)/DBAN.BZI nuke="dwipe"
}
menuentry "Memtest86+" {
linux16 /boot/memtest86+-4.20.bin
}
To wszystko, po zapisaniu zmian można już uruchamiać komputer z tak przygotowanego pendrive.
Autor: Daniel Wayne Armstrong – opublikowano za jego zgodą.
28 grudnia, 2012 at 11:48
Fajny wpis, niedawno zastanawiałem się nad zrobieniem takiego wynalazku (wiedziałem, że się da, ale wersja, którą kiedyś widziałem zakładała IIRC kopiowanie plików z obrazu i użycie syslinux). Niestety, przerwałeś w najciekawszym momencie, czyli jak sprawdzić, jakie opcje wybrać dla boot? No i warto by wspomnieć, co w przypadku aktualizacji pojedynczego pliku iso. Czy/kiedy trzeba aktualizować gruba? Na moje oko wystarczy zmiana ścieżki do pliku iso. No chyba, że te nieszczęsne opcje dla boot…
30 grudnia, 2012 at 9:47
Jeśli nie jesteś wtajemniczony w konfigurację GRUB-a, to odpuść sobie. No chyba, że jesteś przygotowany na wszystkie nerwy, próbuj. Jednak daję Ci gwarancję, że dodawanie ISO do GRUB-a jest mało przyjemne i często z tym mają problemy nawet bardzo zaawansowani ludzie. Są obrazy ISO, które łatwo dodaje się do GRUB-a, ale są też takie, które wymagają głowienia się, np. trzeba wpaść na to, że ISO trzeba najpierw wypakować i jeszcze pokombinować nad wpoisem do GRUB-a, ale są też takie, że za żadne skarby nie będą działać, ponieważ będziesz musiał kombinować, np. żeby instalator był wstanie widzieć ISO nie tylko z płyty CD, ale i z Pendrive itd.
13 stycznia, 2013 at 12:38
Mniej więcej rok temu zrobiłęm na potrzeby serwerowni pendrive z m.in. instalatorami i narzędziówkami w postaci ISO umieszczonymi na pendrive i uruchamianymi za pomocą gruba.
Jedną z początkowych wersji grub.cfg można podejrzeć tu -> http://pastebin.com/5pM1n5b2
13 stycznia, 2013 at 14:48
Z pewnością się przyda, dzięki.
30 grudnia, 2012 at 9:42
Wszystko fajne, wszystko piękne, ale ta metoda jest dobra pod warunkiem, że działa. Jednak przeciętnemu Kowalskiemu często nie będzie działać, ponieważ często może nie wiedzieć jaki wpis do GRUB-a dodać, a po drugie może wydawać się, że robi dobrze to nie zadziała, prosty przykład: Debian Netinst wymaga przerobienia i podmiany kilku plików ISO, najnowsze wydania Fedory również (natomiast np. 14 wymagał rozpakowania obrazu ISO i odpowiedniego wpisu do GRUB-a), SUSE też wymaga podmiany plików. Jedyna dystrybucja, którą fajnie dodaje się pliku konfiguracyjnego GRUB jest Ubuntu – chociaż nie lubię jej za bardzo, tutaj procedura jest normalna i prosta do zrozumienia. Zamiast Twojej (autora, który wyraził Ci zgodę na przetłumaczenie tego wpisu) metody polecam użycie dd, cat lub ewentualnie programu do tego typu – prawdopodobieństwo, że będzie dobrze działać jest dużo większe.
30 grudnia, 2012 at 13:21
Same distra które były wybrane tutaj, świadczą raczej, że nie jest to metoda dla Kowalskiego. Chodziło tutaj też o multiboot, z pomocą dd, syslinux, unetbootin czy innego nie osiągniesz tego.
31 grudnia, 2012 at 12:07
Hmm – słabszym ogniwem niż zaawansowanie użytkownika (człowieka można wszak wyszkolić) wydaje mi się kompatybilność i ograniczenia tej metody – nie zaglądałem do kodu gruba :) ale podejrzewam że tak można zrobić tylko z linuksem lub z "ISO" które po starcie nie potrzebuje mieć dostępu do samego siebie, tj wczytuje kilka megabajtów z ramu i tyle – wingrozy ani makówkOSa tak nie wybootujesz… w mojej opinii – chociaż zachęcam do testów i mam nadzieję że się mylę.
Sam używam sprzętowego rozwiązania Virtual USB CD/DVD/BD ROM jednej firmy na 'ostatnią literę alfabetu' (mają dwie wersje: USB2.0 lub USB3.0), innych producentów ani produktów nie znalazłem ale zakochałem się w tym od pierwszego wejrzenia.
Trafiłem tu też dzięki stronie Roziego – więc dodam jeszcze tylko, że spotkałem komputery które nie wspierają bootowania z pamięci USB-pendrive – ale za to bez problemu bootują z USB-cdrom :) więc nie mam problemu.
P.S. Ten tekst nie miał na celu zwiększenie sprzedaży ani kryptoreklamy produktów firmy na ostatnią literę alfabetu (łacińskiego alfabetu!) – ma zachęcić jedynie do poszukiwań alternatyw a także przez to do zmniejszenia ceny produktu :). Nie jestem też zwolennikiem wingrozy ani makówki ale świat nie jest czarno biały – czasami jest też niebieski i srebrnoszary.
13 lutego, 2013 at 21:19
Zawsze można użyć unetbootin.
Ale zamiast GRUB-a na USB wolę syslinux, grub wymaga identyfikatora partycji syslinux odpala z nośnika na którym się znajduje.
22 lutego, 2013 at 10:57
Wypalanie płyt nie tylko stało się passe, ale przede wszystkim wolne, niewygodne i niepewne. Ostatnio zainstalowałem Windowsa 8 z pendrive w zaledwie 10 minut :D
5 marca, 2013 at 9:20
Dokładnie, wypalenie płyty szczególnie powyżej 2 Gb jest zajmuję trochę czasu. A jak wiadomo czas to pieniądz.
28 kwietnia, 2013 at 15:43
Wydaje mi się, że czas tej samej ilości danych na płytę i pendrive jest zbliżony. Szczególnie dla większych ilości danych. Oczywiście zależy jaki pendrive jeszcze, ale tak typowo?