J'ai une machine avec le BIOS UEFI. Je souhaite installer Ubuntu 18.04, version de bureau avec RAID 1 (et LVM), afin que mon système continue de fonctionner même si l'un des disques tombe en panne. Je n'ai pas trouvé de HOWTO expliquant comment faire cela. Le programme d'installation de bureau ne prend pas en charge RAID. La réponse à cette question fonctionne presque, mais nécessite un peu de magie GRUB Shell/disque USB de secours et paramètres UEFI. Est-ce que quelqu'un est au courant d'une procédure qui fonctionne sans les parties magiques?
Avec l'aide de Comment installer un serveur Ubuntu avec UEFI et RAID1 + LVM , configuration du RAID sous Ubuntu 18.04 , et prise en charge du RAID dans le programme d'installation de Ubuntu 18.04 Desktop? et Comment se débarrasser de "l'analyse des systèmes de fichiers btrfs" au démarrage? , j'ai réussi à mettre en place un HOWTO fonctionnel utilisant uniquement des commandes linux.
btrfs
name__.Install Ubuntu Server
.Partition disks
, sélectionnez Manual
name__.Configure the Logical Volume Manager
. Delete logical volume
jusqu'à ce que tous les volumes aient été supprimés.Delete volume group
jusqu'à ce que tous les groupes de volumes aient été supprimés.Configure software RAID
. Delete MD device
jusqu'à ce que tous les périphériques MD aient été supprimés.Delete the partition
.EFI System Partition
.Physical Volume for RAID
.Configure software RAID
.Create MD device
, tapez RAID1
, 2 disques actifs, 0 disques de réserve, puis sélectionnez les périphériques /dev/sda2
et /dev/sdb2
.Configure the Logical Volume Manager
.vg
sur le périphérique /dev/md0
.swap
à 16Groot
à 35Gtmp
at 10Gvar
at 5Ghome
à 200Gswap
name__, sélectionnez Use as: swap
.Use as: ext4
avec les points de montage appropriés (/
, /tmp
, /var
, /home
, respectivement).Finish partitioning and write changes to disk
.Vérifiez quelle partition EFI a été montée. Très probablement /dev/sda1
.
monter | démarrage de grep
Vérifiez l'état du RAID. Très probablement, il se synchronise.
cat/proc/mdstat
Le démarrage EFI doit avoir été installé sur /dev/sda1
. Comme cette partition n'est pas mise en miroir via le système RAID, nous devons la cloner.
Sudo dd if=/dev/sda1 of=/dev/sdb1
Cette étape peut ne pas être nécessaire, car si l'un des disques venait à mourir, le système devrait démarrer à partir des partitions EFI (identiques). Cependant, il semble prudent de s'assurer que nous pouvons démarrer à partir de l'un ou l'autre disque.
efibootmgr -v
et notez le nom de fichier de l’entrée de démarrage ubuntu
name__. Sur mon installation, il y avait \EFI\ubuntu\shimx64.efi
.Sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efi
.Si vous voulez essayer de retirer/désactiver n'importe quel lecteur, vous devez d'abord attendre que la synchronisation RAID soit terminée! Surveillez les progrès avec cat /proc/mdstat
Cependant, vous pouvez effectuer l'étape 8 ci-dessous en attendant.
Si un lecteur tombe en panne (une fois la synchronisation terminée), le système continue à démarrer. Cependant, la séquence de démarrage passera beaucoup de temps à rechercher les systèmes de fichiers btrfs. Pour supprimer cette attente inutile, exécutez
Sudo apt-get purge btrfs-progs
Cela devrait supprimer btrfs-progs
, btrfs-tools
et ubuntu-server
. Le dernier paquet est juste un méta-paquet, donc si aucun autre paquet n'est listé pour la suppression, tout devrait bien se passer.
Exécutez Sudo apt install ubuntu-desktop
pour installer la version de bureau. Après cela, la synchronisation est probablement terminée et votre système est configuré et devrait survivre à une panne de disque!
Lorsque le package grub-efi-AMD64
est mis à jour, les fichiers de la partition EFI (montés à /boot/efi
) peuvent changer. Dans ce cas, la mise à jour doit être clonée manuellement sur la partition miroir. Heureusement, le gestionnaire de mises à jour vous avertit que grub-efi-AMD64
est sur le point d'être mis à jour. Vous n'avez donc pas à vérifier après chaque mise à jour.
Si vous n'avez pas redémarré après la mise à jour, utilisez
mount | grep boot
pour savoir quelle partition EFI est montée. Cette partition, généralement /dev/sdb1
, doit être utilisée comme source de clone.
Créez des points de montage et montez les deux partitions:
Sudo mkdir /tmp/sda1 /tmp/sdb1
Sudo mount /dev/sda1 /tmp/sda1
Sudo mount /dev/sdb1 /tmp/sdb1
Trouver l'horodatage du fichier le plus récent dans chaque arbre
Sudo find /tmp/sda1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sda1
Sudo find /tmp/sdb1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sdb1
Comparer les horodatages
cat /tmp/newest.sd* | sort | tail -n 1 | Perl -ne 'm,/tmp/(sd[ab]1)/, && print "/dev/$1 is newest.\n"'
Devrait imprimer /dev/sdb1 is newest
(le plus probable) ou /dev/sda1 is newest
. Cette partition doit être utilisée comme source de clone.
Démontez les partitions avant le clonage pour éviter les incohérences cache/partition.
Sudo umount /tmp/sda1 /tmp/sdb1
Si /dev/sdb1
était la source du clone:
Sudo dd if=/dev/sdb1 of=/dev/sda1
Si /dev/sda1
était la source du clone:
Sudo dd if=/dev/sda1 of=/dev/sdb1
Fait!
Si vous voulez d'abord essayer ceci sur une machine virtuelle, il y a certaines mises en garde: Apparemment, la NVRAM qui contient les informations UEFI est mémorisée entre les redémarrages, mais pas entre les cycles d'arrêt/redémarrage. Dans ce cas, vous pouvez vous retrouver sur la console du shell UEFI. Les commandes suivantes doivent vous démarrer sur votre ordinateur à partir de /dev/sda1
(utilisez FS1:
pour /dev/sdb1
):
FS0:
\EFI\ubuntu\grubx64.efi
La première solution dans la réponse principale de démarrage de UEFI dans la virtualbox - Ubuntu 12.04 pourrait également être utile.
J'ai réussi à obtenir environ 99% du chemin avec la réponse de @Niclas Börlin, merci!
J'ai également tiré l'aide des réponses suivantes:
/boot
sous XFS. Le grub2 fourni avec Ubuntu 18.04LTS ne gère apparemment pas cela. Bien que cela ne soit documenté nulle part. J'ai créé une partition EXT-4 /boot
séparée. Notez que cela se trouve toujours sur le volume RAID-1 LVM et non pas sur des partitions séparées comme celles d'EFI! Beaucoup de réponses plus anciennes disent que ce n'est pas possible, mais cela semble être le cas maintenant. J'ai fini par obtenir grub mais en obtenant des erreurs de système de fichiers inconnues (par exemple. Comment réparer) "erreur: système de fichiers inconnu. Grub rescue> ) qui m'a donné l'indice XFS sur /boot
sans appel./boot
n'était pas accessible.Commencez par la réponse de @Niclas Börlin et changez quelques petites choses.
Je préfère une grande partition /
, donc cela reflète ce choix. La modification principale est une partition EXT4 /boot
au lieu d'une partition XFS.
sda/
GPT 1M (auto-added)
sda1 - EFI - 512M
sda2 - MD0 - 3.5G
sdb/
GPT 1M (auto-added)
sdb1 - EFI - 512M
sdb2 - MD0 - 3.5G
md0/
vg/
boot - 1G - EXT4 /boot
swap - 16G - SWAP
root - rest - XFS /
Après l'installation terminée, j'ai pu dd
le contenu de sda1
à sdb2
comme indiqué dans l'autre réponse. J'ai également pu ajouter le deuxième lecteur à la chaîne de démarrage en utilisant efibootmgr
comme indiqué.