Pendrive Linux

Egyik barátom, megkért, hogy segítsek megformázni az önéletrajzát, mert tetszett neki, ahogy az enyém kinéz. Természetesen nagyon szívesen, de ugye azt beszéltük meg, hogy a városban találkozunk. Nála lesz laptop, de nem biztos, hogy lesz net, ahol leszünk, meg amúgy is sok időt elvenne, ha ott telepítgetnék LaTeX-et. Laptopot cipelni lusta vagyok. Szóval arra jöttem rá, hogy gyorsan kirakok egy minimál linuxot pendrive-ra. Egész gyorsan megvolt. Íme:

Megjegyzés: Eredetileg öcsémnek írtam meg e-mail-ben innen a tegező hangnem. Remélem senkit nem sért.

Kellékek:
	qemu
	syslinux
	cfdisk
	kedvenc distro-d telepítője

Mejegyzés: Érdemes kintről partícionálni, legalábbis qemu alatt nekem gondom volt vele.

$ cfdisk /dev/sdX

Hozz létre 2-3 Linux (ez a default) partíciót. Az egyik lesz a /boot, azt tedd indíthatóvá (b gyorsbillentyű). 100 MB elég kell, hogy legyen. Többi az /, /home, ízlés szerint. Ha teszel rá vfat partíciót is, az a legelső elsődleges partíció legyen, különben még a Windows 7™ sem látja. cfdisk(8)-ben W95 FAT32 (azt hiszem 0B a kódja, de ne perelj be, ha nem), majd

$ mkdosfs -F32 /dev/sdX1

Töltsd le a iso-t, amiről telepítesz, ha eddig nem tetted volna meg, és ezzel már meg is vagyunk az előkészületekkel. Jöhet a telepítés.

$ qemu -m 1G -cdrom /path/to/linux.iso -usb /dev/sdX -boot d

Itt telepíted, ahogy normálisan is tennéd, leszámítva, hogy bootloader nem kell. Az 1GB memória jelzés értékkel van ott. Esetleg még egy -vga std kapcsolóra is szükség lesz. Ezzel meg is vagy.

$ sync && init 0

Most a rendes gépeden mountold fel a /boot partíciódat (legyen mondjuk /dev/sdb2), és hozz létre rajta egy extlinux/extlinux.conf file-t.

$ mkdir -p /mnt/boot && mount /dev/sdb2 /mnt/boot
$ mkdir -p /mnt/boot/extlinux
$ cat >/mnt/boot/extlinux/extlinux.conf <<EOF
DEFAULT linux
LABEL linux
	SAY booting linux, baby!
	KERNEL /vmlinuz26
	APPEND root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro initrd=/linux26.img
EOF
$ extlinux --install /mnt/boot/extlinux
$ umount /mnt/boot && rmdir /mnt/boot
$ cat /usr/lib/syslinux/mbr.bin >/dev/sdb

Kész is van. Így már bootloható is. extlinux.conf gondolom egyértelmű, mi történik, syslinux wiki-n nagyon részletesen le van írva, mit hogy kell (a syslinux résznél, mert a .conf file mindenhova ugyanaz a formátum). UUID-t így szerzel:

$ blkid | grep /dev/sdb3

Persze, ha nyuszi vagy, más szövegszerkesztőt is használhatsz, nem muszáj cat(1)-et. Itt a releváns xkcd: http://xkcd.com/378/

Ennyi. remélem hasznos volt.

Kiegésítés: Nagy segítségemre volt Brain0 blogbejegyzése: http://archlinux.me/brain0/2010/05/29/arch-linux-usb-install-and-resuce…

Hozzászólások

Szép és jó, de néhány disztró esetén fölösleges, mert tudnak permanens adattárolást live rendszerként pendrive -ról működve oob (aufs2 -vel). Pl. openSUSE, Ubuntu. Ezeknél egy egyszerű grafikus eszközzel rámásolod az iso -t a pendrive -ra, oszt' csókolom.

Vagy ha ez az egész kínai neki, akkor bootol live cd-ről, ráklikkel egyet az "indítólemez készítő"-re és ennyi. Majd bootol arról és azt telepít rá, amit akar. Persze, a fenti sokkal vagányabb..:)).

Nyilván, aki olyan distro-t akar használni, ahol ez opció, az hülye lesz nem így csinálni. De nem az Ubuntu-nál áll meg a világ. Gondoltam valakinek csak hasznos lesz.

---------------------------------------------------------------------------------------
Unix is simple. It just takes a genius to understand its simplicity. — Dennis Ritchie