Gentoo rendszer telepítése bootolható USB pendrive adathordozóra

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Install Gentoo on a bootable USB stick and the translation is 100% complete.

A Gentoo indítása USB pendrive-ról nagyon egyszerű művelet. A fő kihívás egy kezdeti ramdisk beállítása és az illesztőprogramok belefoglalása minden olyan számítógép számára, amelyet el fog indítani. Ez a cikk leírja azt hogy, miként telepíthető a Gentoo olyan USB-meghajtóra, amely aztán bármely számítógépről elindítható. Ez a telepítés olyan lesz, mint egy hagyományos asztali telepítés, és az adathordozón a változtatások is ugyanúgy tartósak lesznek.

Note
Ez a cikk egy komplett, működőképes Gentoo rendszer USB-meghajtóra történő telepítéséről szól. Tekintse meg a LiveUSB cikket egy egyszerű rendszerindító meghajtó létrehozásához, amely például a Gentoo telepítéséhez használható.

Előkészület a műveletre

Note
Az útmutató feltételezi, hogy a jelenlegi platform egy Gentoo Linux. A lépések többsége azonban bármilyen disztribúcióból elvégezhető, csak fordítsa le a Gentoo-specifikus cselekvési módot (például szoftver telepítési módszer) a másik Linuxos disztribúció gyakorlatára.

Kezdje néhány szükséges programcsomag telepítésével. A kernel és a sys-kernel/genkernel programcsomag a legfontosabbak:

root #emerge --ask sys-kernel/gentoo-sources sys-kernel/genkernel

A kernel fordítása futtatható bináris kódra

Végezze el a szükséges változtatásokat a kernel forráskódján, és fordítsa azt le bináris futtatható kódra. Erről a lépésről a Linux kernel konfigurálása és a Kernel konfigurációjának az útmutatója című cikkekben olvashat bővebben. Fontos megjegyezni, hogy az általános kernel felhasználása itt jobb megoldást jelent, mert minél általánosabb a kernel, annál többfajta számítógép fog vele elindulni.

A konfiguráció során természetesen lehetőség van modulok fordítására is, mivel ezek az initramfs fájlrendszerre kerülnek rá, amelyek rendszerindításkor majd be fognak töltődni.

root #mkdir /tmp/boot
root #genkernel --firmware --bootdir=/tmp/boot --no-symlink --all-ramdisk-modules --install all

A fenti parancs futási ideje el fog tartani egy ideig, mivel fel fogja építeni forráskódból bináris futtatható kódra az alapértelmezett kernelt. Ezt követően létrehoz egy ramdisk fájlt is, majd az összes újonnan létrehozott futtatható fájlt átmásolja a /tmp/boot könyvtárba.

root #ls /tmp/boot/
initramfs-genkernel-x86_64-3.5.2-gentoo
kernel-genkernel-x86_64-3.5.2-gentoo
System.map-genkernel-x86_64-3.5.2-gentoo

Az USB pendrive előkészítése

Az AMD64 Gentoo kézikönyv Handbook:AMD64/Installation/Disks#Partition_tables szakasza a különböző particionálási technológiákat tárgyalja.

MBR stílusú particionálás

Ez a szakasz a régi MBR particionálási stílust feltételezi.

Hozzon létre 2 partíciót az USB-adathordozón (feltételezve, hogy a telepítendő rendszernek lesz egy /boot és egy / (root) partíciója). Feltételezzük, hogy az USB-adathordozó a /dev/sdb mappában van (az USB-meghajtó csatlakoztatása után azonnal futtassa a dmesg programot, hogy megnézze, melyik eszköz van elkezdve használva).

root #fdisk /dev/sdb
Command (m for help): d
Selected partition 1
 
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-4001759, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4001759, default 4001759): +100M
 
Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (1-4, default 2):  
Using default value 2
First sector (206848-4001759, default 206848): 
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-4001759, default 4001759): 
Using default value 4001759
 
Command (m for help): a
Partition number (1-4): 1
 
Command (m for help): p
 
Disk /dev/sdb: 2048 MB, 2048901120 bytes
255 heads, 63 sectors/track, 249 cylinders, total 4001760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x001663df
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048      206847      102400   83  Linux
/dev/sdb2          206848     4001759     1897456   83  Linux
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

Győződjön meg arról, hogy az első partíció indítható (bootolható). Az a parancs átkapcsolja a rendszerindítási jelölőzászlót a partíción (ezáltal lesz a közönséges partíció bootolható partíciónak megjelölve. Ha ezt elfeledjük megcsinálni, akkor nem tud elindulni a rendszerünk. Fordítói megjegyzés).

Formázás

Most formázza az újonnan létrehozott partíciókat. A példában az ext4 fájlrendszert használjuk, de egy másik fájlrendszer is használható a / partícióhoz, ha azt a kernel támogatja. Figyelje meg, hogy a formázási művelet során címke rendelődik a partíciókhoz. Ez azért fontos, mert a gyökér (root) fájlrendszert a későbbiekben ez a most hozzárendelt címke alapján lehet majd észlelni, amikor olyan rendszereken lesz indítani az USB-meghajtó, ahol a meghajtóbetűjel-kiosztás teljesen más.

root #mkfs.ext4 -L GENTOO_USB_BOOT /dev/sdb1
root #mkfs.ext4 -L GENTOO_USB_ROOT /dev/sdb2

A Gentoo harmadik fokozatának (Stage 3) a telepítése

A kernel, a ramdisk és a fájlrendszerek létrehozása után végre kell hajtanunk egy minimális Gentoo feltelepítést. Ez magába foglal egy Gentoo telepítéskor szokásos friss stage3 (harmadik telepítőfokozat) fájlt, valamint az ilyenkor szokásos Portage csomagkezelő fájának a pillanatkép letöltését.

Ebben a példában a stage3-amd64-20120621.tar.bz2 és a portage-latest.tar.xz van használva. A következő részleírás pontosan ugyanaz, mint a normál Gentoo telepítés leírása a kézikönyvében.

root #mount /dev/sdb2 /mnt/gentoo
root #cd /mnt/gentoo
root #tar -xpf ~/Download/stage3-amd64-20120621.tar.bz2
root #cd usr
root #tar -xpf ~/Download/portage-latest.tar.xz
root #mount /dev/sdb1 /mnt/gentoo/boot
root #cp /tmp/boot/* /mnt/gentoo/boot

Az alábbi szakaszok a Gentoo Linux telepítés azon vonatkozásait fedik le, amelyek kifejezetten az USB pendrive adathordozóra történő telepítésre vonatkoznak. Javasoljuk, hogy használja a Gentoo kézikönyv utasításait, miközben figyelemmel kíséri ezt a cikket.

Bootloader (rendszerbetöltő)

Az új rendszer indításához telepítsen egy bootloader-t az USB pendrive adattárolóra.

Az alábbi szakaszok példakonfigurációkat mutatnak be a GRUB vagy a lilo és a syslinux együttes használatához.

GRUB

Warning
Ez a módszer csak az UEFI rendszerindításra (UEFI boot -ra) vonatkozik!

Emerge GRUB (a chroot belsejéből):

(chroot) #emerge sys-boot/grub

Telepítse a GRUB rendszerbetöltőt a megfelelő helyre a platform információival. Tegyük fel, hogy Ön éppen egy x86_64 architektúrájú gépet futtat, amelynek az EFI partíciója a /boot/efi könyvtárhoz van felcsatlakoztatva. Ebben az esetben a következő parancs telepíti a GRUB rendszerbetöltőt az USB pendrive adathordozóra (A fordító megjegezés: Egyszerűen mondva, a parancs kiadásával egyszerűn csak átmásolódik a GRUB az Ön működő Gentoo számítógépéről az USB adathordozóra.) :

Warning
Vegye figyelembe, hogy a --removable opció nagyon fontos. Azt jelzi, hogy a célhely egy cserélhető adathordozó-eszköz. Ne feledje el beírni, különben elronthatja saját működő rendszerét!

Ha helyesen futtatta a fenti parancsot, és semmi baj nem történt, akkor futtassa a grub-mkconfig parancsot az USB adattárolóra másolt GRUB konfigurációs fájljának a létrehozásához:

(chroot) #grub-mkconfig -o /boot/grub/grub.cfg

Ennek megfelelően módosítsa a célkönyvtárat, ha másik GRUB konfigurációs könyvtárat használ az USB adathordozón.

lilo

Emerge lilo (a chroot belsejéből):

(chroot) #emerge sys-boot/lilo

Szerkessze az etc/lilo.conf fájlt úgy, hogy a megfelelő információk szerepeljenek benne.

Warning
Ezek a beállítások nagyon fontosak, és soronként tárgyaljuk őket.
FILE /etc/lilo.confA lilo.conf konfigurációs fájl szerkesztése
boot=/dev/sdb              # The location of the USB Stick (currently)
lba32                      # use lba32 addressing (ignore)
compact                    # boot quickly by loading lots of blocks
                           # remove when there are problems with booting
prompt                     # Prompt for user input
timeout=20                 # Time to wait before default selection
default="Gentoo-352"       # Default selection after timeout
  
image=/boot/vmlinuz-5.10.76-gentoo-r1-x86_64
	label="Gentoo-352"
	read-only
	root=/dev/ram0
	append="root=LABEL=GENTOO_USB_ROOT scandelay=5"
	initrd=/boot/initramfs-5.10.76-gentoo-r1-x86_64.img

A képfájl utáni sorok mind egyszerűek, de a hozzáfűző sor tartalmaz néhány érdekes lehetőséget.

  • root=LABEL=GENTOO_USB_ROOT a lemez címkéjét fogja használni a /dev/sdb2 helyett, ami azért fontos, mert ezek az eszközszámok a számítógépben lévő merevlemezek számától vagy az USB-meghajtók számától függően változnak.
  • Az USB-s indításnál szintén fontos a scandelay opció, mivel az USB-eszközöket kis időre van szükség ahhoz, hogy a kernel észlelje őket, erre való ez a lehetőség. Ha sok modul van, a rendszerindítás hosszú időt vesz igénybe, így valószínűleg nem számít, de ha csak néhány modul van betöltve, akkor ez fontos, mert a rendszer elindulhatott, mielőtt a kernel észleli az USB-eszközt. Az újabb, USB3-as vezérlőkkel rendelkező gépeken is szükséges az xhci_hcd meghajtó hozzáadása (a rendszermagba beépítve vagy modulként).

Most telepítse a LILO rendszerbetöltőt (a konfigurációval együtt) az USB pendrive adathordozóra:

(chroot) #lilo
Warning: /dev/sdb is not on the first disk
Warning: The initial RAM disk is too big to fit between the kernel and
   the 15M-16M memory hole.  It will be loaded in the highest memory as
   though the configuration file specified "large-memory" and it will
   be assumed that the BIOS supports memory moves above 16M.
Added Gentoo-352 ? *
2 warnings were issued.

Az első figyelmeztetés várható, mivel nem telepítjük a rendszerbetöltőt a számítógépünk merevlemezére. A második figyelmeztetés csak a régi gépeken okoz problémát. Ha gondot okoz, akkor próbálja meg kisebb méretűre vágni a kernelt a modulok eltávolításával.

syslinux

Warning
A syslinux jelenleg csak ext{2,3,4}, btrfs, ntfs és fat fájlrendszerekkel működik.
(chroot) #emerge syslinux

Helyezze a rendszerindító szektort az USB pendrive adathordozóra.

(chroot) #dd bs=440 count=1 conv=notrunc if=/usr/share/syslinux/mbr.bin of=/dev/sdb

Ezután konfigurálni kell a rendszerbetöltőt.

(chroot) #mkdir /boot/syslinux
(chroot) #nano -w /boot/syslinux/syslinux.cfg
FILE /boot/syslinux/syslinux.cfg
PROMPT 1
TIMEOUT 50
DEFAULT gentoo
 
LABEL gentoo
        LINUX ../vmlinuz-5.10.76-gentoo-r1-x86_64
        APPEND root=LABEL=GENTOO_USB_ROOT scandelay=3 ro
        INITRD ../initramfs-5.10.76-gentoo-r1-x86_64.img
Note
A fenti APPEND sorban lévő ro hatására a gyökér (root) partíció írásvédett lesz (ezt általában előnyben részesítik az USB-meghajtókon). Cserélje le a ro jelölést az rw jelölésre, hogy a rendszert a rendszerindítástól kezdve módosítani lehessen (ahelyett, hogy a felhasználó a fájlrendszert később olvasható-írható módban csatolná fel).

Ezután telepítse a syslinux rendszerbetöltőt az USB pendrive adathordozóra. A --device /dev/sdb1 opció azonban nem feltétlenül szükséges.

(chroot) #extlinux --device /dev/sdb1 --install /boot/syslinux

fstab

FILE /etc/fstabAz fstab fájlt beállítása, hogy meglegyen az együttműködés a címkékkel
LABEL=GENTOO_USB_BOOT   /boot           ext4            noauto,noatime  1 2
LABEL=GENTOO_USB_ROOT   /               ext4            noatime         0 1
/dev/SWAP               none            swap            sw              0 0
/dev/cdrom              /mnt/cdrom      auto            noauto,ro       0 0
/dev/fd0                /mnt/floppy     auto            noauto          0 0

Tippek és trükkök

Bár az imént elkészült rendszert szabványos Gentoo rendszerként is lehet használni, készítéskor mégis érdemes lehet a bináris programcsomagokat egy gazdagépen lefordítani, majd azokat az USB pendrive adathordozóra feltelepíteni. Vagy ha a működő gazdagépünknek elég memóriája van, akkor csak csatlakoztassa a /var/tmp fájlt egy tmpfs-hez, mivel ezáltal a programok forráskódból binárisra történő lefordítása sokkal gyorsabb lesz!

További olvasnivaló a témában

  • Installation — an overview of the principles and practices of installing Gentoo on a running system.
  • LiveUSB — explains how to create a Gentoo LiveUSB or, in other words, how to emulate a x86 or amd64 Gentoo LiveCD using a USB drive.