Portál AbcLinuxu, 30. dubna 2025 16:50
Chtěl jsem trochu experimentovat a měl jsem k dispozici externí USB 2.0 pevný disk. Celý tento zápisek je o tom, jak jsem zkopíroval a zprovoznil Arch Linux z interního pevného disku na disk externí (a mj. jsem použil/vyzkoušel GPT a grub2). Mám x86_64 systém.
Nejdříve je třeba doinstalovat gdisk
:
# pacman -S gdisk
Potom je třeba externí disk rozdělit pomocí gdisk
. Já jsem rozdělil takto:
Number Start (sector) End (sector) Size Code Name 1 2048 32767 15.0 MiB EF02 BIOS boot partition 2 32768 21004287 10.0 GiB 8200 Linux swap 3 21004288 625142238 288.1 GiB 0700 Linux/Windows data
Hlavně si všimněte "BIOS boot partition" (0xEF02). Tento oddíl může být velký třeba jenom 1 MiB a slouží pro uložení "second stage" (core.img) Grub 2.
Snad nemusím připomínat, že je třeba oddíl č. 2 a 3 "zformátovat".
Nakonec připojíme 3. oddíl do určitého adresáře (já používám adresář /mnt/transcend01).
Předpokládám, že máte nabootovaný Arch Linux z interního pevného disku a že máte nainstalovaný program rsync. Dále že jste přihlášený jako root.
Zkopírujeme Arch Linux na externí pevný disk třeba takto:
# rsync -avh --progress -x --exclude=/lost+found/ / /mnt/transcend01/ # cd /dev # rsync -a console null zero /mnt/transcend01/dev
Poznámka: /mnt/transcend01/dev musí obsahovat minimálně:
crw------- 1 root root 5, 1 27. bře 00.51 console crw-rw-rw- 1 root root 1, 3 27. bře 00.51 null crw-rw-rw- 1 root root 1, 5 27. bře 00.51 zero
Chci použít grub2-bios, ale zkopíroval jsem si grub-legacy. Musím tedy grub2-bios doinstalovat. Stále předpokládám, že externí pevný disk je připojen do /mnt/transcend01.
Pro pohodlnější práci jsou třeba tyto příkazy:
# mount -t proc proc /mnt/transcend01/proc # mount -t sysfs sys /mnt/transcend01/sys # mount -o bind /dev /mnt/transcend01/dev # chroot /mnt/transcend01 /bin/bash
Nyní doinstalujeme balíček grub2-bios (odstraníme "starý" grub-legacy):
# pacman -S grub2-bios
Potom jako root pomocí grub-install
naistalujeme grub2 na začátek disku a vygenerujeme konfigurační soubor pomocí příkazu grub-mkconfig -o /boot/grub/grub.cfg
Mně to takhle fungovalo, aniž bych musel upravit ještě nějaký jiný konfigurák.
Dále je třeba upravit /etc/mkinitcpio.conf, aby obsahoval mj. toto:
HOOKS="base udev scsi sata usb filesystems"
Dále je třeba: # mkinitcpio -p kernel26
Nezapomeňte také upravit vhodně /etc/fstab
Teď už jenom poinstalační věci:
# exit # cd / # umount /mnt/transcend01/{proc,sys,dev} # umount /mnt/transcend01
Tiskni
Sdílej:
pacman -Sy foo
môže mať katastrofálne následky na systém, pokiaľ ho človek nemá aktuálny (odporúča sa jedine full upgrade pred inštalovaním balíčkov, tj. pacman -Syu foo
) a balíček gdisk sa už nenachádza v repozitári, pretože bol nahradený balíčkom gptfdisk.
pacman -Sy foo
žádné katastrofické následky mít nemůže, právě díky volbě -y
...
Díky za upozornění. Já ale používám:
# pacman -Sy # pacman -S foo
Nebo je to stejné?
pacman -Sy && pacman -S foo
= pacman -Sy foo
a to je zlé. Buď len pacman -S foo
na aktualizovanom systéme, alebo ešte lepšie pacman -Syu foo
.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.