====== 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 **[[https://help.ubuntu.com/community/DiskSpace|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 **[[https://grml.org/download/|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