User Tools

Site Tools


doc:appunti:linux:sa:parted_gpt

Partizionamento GPT con parted

Ho usato questa ricetta per partizionare un disco GPT e copiarci una installazione GNU/Linux utilizzando dump e restore. Il boot loader uilizzato è GRUB EFI. Il sistema funzionerà con du dischi in modalità RAID mirroring, ma viene preparato inizialmente con un disco solo, attivando il RAID in modalità degradata.

Lo schema di partizione utilizzato è il seguente:

Partizione Volume RAID Punto di montaggio Note
/dev/sda1 N/A Partizione per GRUB
/dev/sda2 N/A /boot/efi Partizione per EFI
/dev/sda3 /dev/md0 / Root filesystem
/dev/sda4 /dev/md1 swap Partizione swap
/dev/sda5 /dev/md2 /var Partizione /var
/dev/sda6 /dev/md3 /home Partizione /home

Secondo quanto scritto in questo post DiskSpace, la partizione GRUB serve solo se l'installazione dell'host è fatta con disco partizionato GPT e il BIOS in modalità legacy: in una installazione con BIOS EFI serve solo la partizione omonima. Ovviamente in una installazione legacy la partizione EFI non serve.

Dopo aver avviato la macchina con una live da USB (es GRML 2020.06), si esegue parted per partizionare il disco. Quando si esegue parted è opportuno usare il parametro --align minimal, dovrebbe servire ad evitare gli errori del tipo Warning: The resulting partition is not properly aligned for best performance.

parted --align minimal /dev/sdX

Questi sono i comandi da eseguire al prompt di parted:

mklabel gpt
mkpart primary    1.0MB   10.0MB
mkpart primary   10.0MB  100.0MB
mkpart primary  100.0MB   80.0GB
mkpart primary   80.0GB  100.0GB
mkpart primary  100.0GB  500.0GB
mkpart primary  500.0GB  100%
name 3 rootfs
name 4 swap
name 5 var
name 6 home
set 1 bios_grub on
set 2 boot on
set 2 esp on
set 3 raid on
set 4 raid on
set 5 raid on
set 6 raid on

Quindi si preparano i volumi RAID in modalità degradata:

mdadm --create /dev/md0 --run --level=1 --raid-devices=2 /dev/sda3 missing
mdadm --create /dev/md1 --run --level=1 --raid-devices=2 /dev/sda4 missing
mdadm --create /dev/md2 --run --level=1 --raid-devices=2 /dev/sda5 missing
mdadm --create /dev/md3 --run --level=1 --raid-devices=2 /dev/sda6 missing

Le partizioni venogno formattate con i filesystem opportuni (il comando mkfs.vfat è fornito dal pacchetto Debian dosfstools):

mkfs.ext4 /dev/md0
mkswap /dev/md1
mkfs.ext4 /dev/md2
mkfs.ext4 -m0 /dev/md3
mkfs.vfat /dev/sda2

Sull'host originale si è provveduto a fare il dump dei filesystem (usare comandi analoghi per /var e /home):

dump -0 -a -b 64 -f /data/rootfs.dump /

Infine si può fare il restore del software (usare comandi analoghi per /var e /home):

mount /dev/md0 /mnt
cd /mnt
restore -r -b 64 -f /data/rootfs.dump

Per poter installare GRUB e initramfs si deve eseguire il chroot dall'installazione live:

mount -o bind /dev     /mnt/dev
mount -o bind /dev/pts /mnt/dev/pts
mount -o bind /proc    /mnt/proc
mount -o bind /sys     /mnt/sys
chroot /mnt /bin/bash

Nel chroot sistemare i file /etc/fstab e /etc/mdadm/mdadm.conf.

Per /etc/fstab è necessario indicare gli UUID dei dischi leggendoli da /dev/disk/by-uuid/:

UUID=a019f159-1616-4043-acd6-ca1cbdebb9b4 /          ext4  errors=remount-ro  0  1
UUID=3de323f0-fa3d-45f7-a0d3-c8e5ecc38580 /var       ext4  defaults           0  2
UUID=97c1e77f-4ac5-4b78-aeab-b983b42c98dd /home      ext4  defaults           0  2
UUID=66F9-D107                            /boot/efi  vfat  defaults           0  0
UUID=4003565c-5fd7-422b-954f-8247baeeb3ed none       swap  sw                 0  0

Per compilare /etc/mdadm/mdadm.conf è possibile copiare l'output del comando /usr/share/mdadm/mkconf:

ARRAY /dev/md/0  metadata=1.2 UUID=bcb43454:0e612109:93a1b65b:4a574a57 name=hostname:0
ARRAY /dev/md/1  metadata=1.2 UUID=be91e095:f1dc27cf:eb827f34:b5027d5a name=hostname:1
ARRAY /dev/md/2  metadata=1.2 UUID=14ccfb36:41584555:1aabc244:4632482e name=hostname:2
ARRAY /dev/md/3  metadata=1.2 UUID=ae49f551:05ebfb5f:ee580a8f:fa8a82be name=hostname:3

Sempre nel chroot verificare che sia installato il pacchetto grub-efi e quindi eseguire:

grub-install /dev/sda
update-initramfs -k all -u
doc/appunti/linux/sa/parted_gpt.txt · Last modified: 2022/01/28 18:01 by niccolo