web-dev-qa-db-fra.com

Redimensionnement de la partition de démarrage avec chiffrement intégral du disque

J'ai vu les réponses à la question générale concernant le redimensionnement de la partition de démarrage. Dans mon cas, j'ai installé Ubuntu 12.04 Alternate avec chiffrement intégral du disque. Étant donné que le lecteur ne peut pas être monté pendant l'opération de redimensionnement, la partition principale ne sera-t-elle pas corrompue?

J'ai tout sauvegardé pour pouvoir éventuellement effectuer une réinstallation, mais je ne sais pas comment spécifier la taille de la partition de démarrage avant le cryptage.

12
Tom Stone

Je sais que cette question est ancienne, mais se pose lors de la recherche du problème de la petite partition de démarrage et de l’utilisation du chiffrement de disque.

Le programme d’installation Ubuntu ubiquity utilise partman pour le partitionnement. Lorsque l'option "Utiliser le disque entier" est sélectionnée, les configurations de partition proviennent des fichiers de recettes partman dans /lib/partman/recipes-[Arch]/* et /lib/partman/recipes/* sur le CD live. Recherchez la recette utilisée par le programme d'installation et modifiez la taille maximale de la partition /boot. Sur mon système, la recette utilisée par défaut est /lib/partman/recipes/30atomic. Ouvrez le terminal:

ubuntu@ubuntu:~$ Sudo nano /lib/partman/recipes/30atomic

Accédez à la section correspondant à la partition de démarrage et modifiez le troisième nombre (256 ci-dessous) à la taille souhaitée (je recommande au moins 512):

128 512 256 ext2
    $defaultignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext2 }
    mountpoint{ /boot }

Cette section indique que la taille va être comprise entre 128 et 256 Mo avec une priorité de 512, ce qui détermine l’importance de la taille de cette partition par rapport aux autres.

Enregistrez-le avec Ctrl+OEnter. Ensuite, lancez le programme d'installation, installez comme d'habitude.

3
mkayaalp

Je suppose que par chiffrement intégral du disque, vous entendez une petite partition de démarrage non chiffrée et une autre partition qui est un volume physique pour le chiffrement (dm-crypt). S'il n'y a pas d'espace entre eux, vous ne pourrez pas redimensionner de manière non destructive la partition chiffrée pour créer plus d'espace pour/boot.

Regardez ma réponse ici - cela pourrait aider.

2
Marcin Kaminski

Oui, le redimensionnement est possible mais c’est très compliqué. Je ne tenterais cela qu'après avoir sauvegardé TOUTES vos données. Si vous faites une erreur, le potentiel de perte de données est assez élevé. Vous voudrez avoir un CD/CD USB Ubuntu Live amorable, car vous devriez effectuer ces opérations après le démarrage sur un CD/USB.

J'ai découvert la difficulté il y a quelque temps lorsque la communauté Linux a modifié les exigences en ce qui concerne la taille requise de la partition de démarrage. Auparavant, 100 à 200 Mo suffisaient pour démarrer, mais la communauté a ensuite doublé sa taille. Cela a affecté les utilisateurs qui suivaient les directives précédentes.

https://serverfault.com/questions/334663/what-is-the-recommended-size-for-a-linux-boot-partition

Pour les besoins actuels de/boot, je vous renvoie aux directives officielles.

https://help.ubuntu.com/community/DiskSpace

Au moment de la rédaction de cet article, les directives recommandent de démarrer de 250 Mo à 1 Go d’espace. Je recommanderais une partition de démarrage séparée avec le plus grand espace requis. La partition de démarrage doit être non chiffrée pendant le processus de démarrage. Le processus de démarrage consistera à monter différentes partitions chiffrées en cours de route, par exemple des disques chiffrés LUKS ou des répertoires HOME chiffrés. Il existe des différences entre ces approches. D'après mon expérience, l'utilisation des différentes options de chiffrement de disque dur Ubuntu a tendance à poser des problèmes lors de la mise à niveau ultérieure d'Ubuntu, qui nécessite une intervention manuelle.

Pour un aperçu général, je vous renvoie à cet article que j’estime bien écrit.

'LUKS chiffrant plusieurs partitions sur Debian/Ubuntu avec une seule phrase secrète'

https://www.martineve.com/2012/11/02/luks-encrypting-multiple-partitions-on-debianubuntu-with-a-single-passphrase/

Lorsque vous avez besoin de changer vos partitions, je trouve ce post très utile.

'Comment redimensionner un système de fichiers chiffré LUKS'

https://ubuntuforums.org/showthread.php?t=726724

Maintenant, parce que gparted ne prend pas en charge le déplacement de partitions LUKS chiffrées, cela ne peut pas être effectué à l'aide de commandes gparted à partir de la ligne de commande ni de l'interface graphique. J'ai découvert que vous pouvez utiliser gparted pour créer des partitions, puis utiliser dd pour déplacer vos partitions chiffrées, en utilisant des copies secteur par secteur. Cela implique de pouvoir calculer la taille des partitions en termes de secteurs. Faire une erreur signifie une perte de données et une réinstallation.

Dans mon cas, je dois augmenter la taille de ma partition de démarrage de 537 Mo à 1 Go. J'ai besoin de cela dans le cadre de ma mise à niveau d'Ubuntu 12.04 à 14.04 afin que la mise à niveau d'Ubuntu puisse trouver suffisamment d'espace disque sur/boot. Oui, vous pouvez supprimer le retrait automatique pour libérer de l’espace dans/boot, mais les exigences générales ont été modifiées. J’élargissais donc boot pour que je puisse également tenir compte de ces directives. Voici la disposition de ma partition.

Partition Table: gpt

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  538MB  537MB  fat32              boot
 2      538MB   794MB  256MB  ext2
 3      794MB   240GB  239GB

J'ai le disque chiffré LUKS dans la partition n ° 3 et mon démarrage dans la partition n ° 1, de sorte qu'il n'y avait pas assez d'espace pour étendre/boot. Remarque Gparted ne peut pas déplacer la partition n ° 3 car il s'agit d'une partition chiffrée. Pour résoudre ce problème, j'ai créé une quatrième partition à la fin de mon disque de même taille en secteurs et utilisé dd pour copier le contenu de la partition n ° 3 sur la partition n ° 4. J'ai trouvé utile de redimensionner ma racine à la taille minimale nécessaire. Ainsi, j’ai effectué les opérations suivantes pour traiter la taille de mon/boot.

  1. Shrunk le système de fichiers racine dans la partition n ° 3
  2. Redimensionner la partition n ° 3 (pour être plus petit)
  3. Création d'une partition n ° 4 de même taille (à la fin du disque)
  4. DD utilisé pour copier les secteurs de la partition n ° 3 sur la partition n ° 4
  5. Supprimé la partition n ° 3 pour libérer de l'espace sur le disque
  6. Utilisé Gparted pour redimensionner et déplacer les partitions n ° 1 et n ° 2
  7. Création d'une nouvelle partition n ° 3 de la même taille que la partition rétrécie n ° 3 (ou n ° 4)
  8. DD utilisé pour copier les secteurs de la partition n ° 4 sur la partition n ° 3
  9. Supprimer la partition n ° 4
  10. Augmentez la taille de la partition n ° 3 par rapport à la taille originale n ° 3
  11. Mise à jour du système de fichiers contenu dans la partition chiffrée n ° 3 vers l'espace restant

De cette façon, je pourrais supprimer la partition n ° 3 et utiliser gparted pour déplacer et agrandir les partitions n ° 1 et n ° 2. La lecture des guides ci-dessus devrait fournir assez de perspicacité pour naviguer dans la bonne direction. Il n'est pas affiché ici, mais en rétrécissant ma partition racine, j'ai supprimé un groupe de volumes d'échange sur la même partition et l'ai recréé à la fin. Tout cela est en cours lors du démarrage sur une clé USB Linux Live. Voici quelques-unes de mes notes qui n’étaient pas facilement disponibles dans les guides ci-dessus.

J'ai trouvé blockdev utile pour afficher la taille des partitions en secteurs. Cela m'aide à calculer la taille des secteurs.

Sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712

La commande Gparted 'unit s' affichera votre table de partition en secteurs. Toutes les opérations de dimensionnement, de suppression et de création de partition sont effectuées à l'aide de Gparted. De cette façon, vous pouvez simplement faire toutes les maths dans les secteurs. L'unité compacte repassera au format Mo/Go, si vous voulez voir à quoi ressemble le calcul mathématique du secteur.

(parted) unit s
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  456656896s  455106561s

La commande resize2fs a une option astucieuse pour redimensionner au minimum. De plus, j'ai supprimé mon groupe de volumes d'échange au cours de cette partie.

ubuntu@ubuntu:~$ Sudo resize2fs -M -p /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/ubuntu-vg/root to 2261211 (4k) blocks.
Begin pass 3 (max = 1600)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/ubuntu-vg/root is now 2260992 blocks long.

Lorsque vous redimensionnez des tables de partition, retournez et mettez à jour gparted. Utilisé 4096 * 2260992, puis blockdev pour vérifier le calcul ici. Voici la commande gparted.

(parted) resizepart 3
End?  [224419843s]? 225970179s 
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes                                                               
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  225970179s  224419844s

Notez que la taille du nombre de secteurs de la partition n ° 3 est inférieure à celle de ma liste d'origine, c’est-à-dire que vous pouvez utiliser gparted pour créer la partition n ° 4 avant la copie DD. La réduction libère plus d'espace disque pour cette copie.

ubuntu@ubuntu:~$ Sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=1550336 count=224419844 seek=244437218
224419844+0 records in
224419844+0 records out
114902960128 bytes (115 GB) copied, 2146.1 s, 53.5 MB/s

Après la copie DD, continuez et agrandissez la taille de votre partition/boot. Vous allez supprimer la partition n ° 3 d'origine, puis recréer la partition n ° 3 à un nouvel emplacement de secteur après les partitions agrandie n ° 1 et n ° 2. De nouveau, blockdev a été utilisé pour mesurer la taille des secteurs. J'ai créé cette partition n ° 3 de la même taille que la partition n ° 4, qui est inférieure à la partition n ° 3 à l'origine. Utilisez DD pour copier les secteurs n ° 4 sur la partition n ° 3.

ubuntu@ubuntu:~$ Sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=244437218 count=224419844 seek=9242624

Après la copie, supprimez la partition n ° 4 et développez la taille de la partition n ° 3. Dans mon cas, je viens de restaurer la partition n ° 3 à la taille que j'avais quand j'ai commencé. J'ai eu assez d'espace pour faire ça.

(parted) resizepart 3                                                     
End?  [464349185s]? 464349184s                                           
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y                                                                 
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     4192255s    4190208s    fat32              boot
 2      5146624s  9242623s    4096000s    ext2
 3      9242624s  464349184s  455106561s

Lorsque gparted augmente la taille de la partition, le système de fichiers n'est pas mis à jour. Notez que le système de fichiers est contenu dans la partition chiffrée, il doit donc être ouvert et monté pour effectuer cette modification. Utilisez la commande suivante pour résoudre ce problème. Cela peut être fait sur le système en direct si nécessaire.

user@zagyg:/$ Sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 13
The filesystem on /dev/ubuntu-vg/root is now 54266880 blocks long.

En conclusion, bien que Gparted ne supporte pas son opération de manière native, c'est un outil incroyablement utile pour gérer les partitions. A mon avis, c'est un peu plus utile que fdisk. Entre Gparted et DD, j'ai pu gérer mes partitions puis utiliser les outils Ubuntu pour passer de 12.04 LTS à 14.04 LTS.

0
Doc