Portál AbcLinuxu, 31. října 2025 18:23
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:
                 
                 
                 
                 
                 
                 
            
    
 27.3.2011 15:21
Marek Niklíček             | skóre: 17
            
             | Rimavská Sobota / Banská Bystrica
        27.3.2011 15:21
Marek Niklíček             | skóre: 17
            
             | Rimavská Sobota / Banská Bystrica
        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...
             27.3.2011 16:42
Marek Niklíček             | skóre: 17
            
             | Rimavská Sobota / Banská Bystrica
        27.3.2011 16:42
Marek Niklíček             | skóre: 17
            
             | Rimavská Sobota / Banská Bystrica
        Díky za upozornění. Já ale používám:
# pacman -Sy # pacman -S foo
Nebo je to stejné?
 27.3.2011 18:50
Marek Niklíček             | skóre: 17
            
             | Rimavská Sobota / Banská Bystrica
        27.3.2011 18:50
Marek Niklíček             | skóre: 17
            
             | Rimavská Sobota / Banská Bystrica
        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.