Dans cet article, la partition racine Linux est devenue trop petite, nous allons donc réduire la partition home supplémentaire et étendre la partition racine.
Plus précisément, la configuration qui était comme ça au début
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
/dev/nvme0n1p3 239616 168011775 167772160 80G Microsoft basic data
/dev/nvme0n1p4 168011776 170108927 2097152 1G Windows recovery environment
/dev/nvme0n1p5 170108928 274966527 104857600 50G Microsoft basic data
/dev/nvme0n1p6 274966528 370976767 96010240 45.8G Linux root
/dev/nvme0n1p7 370976768 907847679 536870912 256G Linux home
Réduisez / dev / nvme0n1p7
de 56 Go et développez / dev / nvme0n1p6
de 50 Go pour effectuer la configuration suivante.
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
/dev/nvme0n1p3 239616 168011775 167772160 80G Microsoft basic data
/dev/nvme0n1p4 168011776 170108927 2097152 1G Windows recovery environment
/dev/nvme0n1p5 170108928 274966527 104857600 50G Microsoft basic data
/dev/nvme0n1p6 274966528 475834367 200867840 95.8G Linux root
/dev/nvme0n1p7 475834368 895264767 419430400 200G Linux home
L'opération peut être divisée en les trois principaux suivants
/ dev / nvme0n1p7
/ dev / nvme0n1p7
pour créer un secteur non alloué après la partition racine / dev / nvme0n1p6
/ dev / nvme0n1p6
Pour la raison de l'opération 2, dans le cas de cette configuration de partition, il y a une partition home dans le secteur sous la partition racine. En effet, il n'est pas possible de créer une partition sur plusieurs secteurs, donc après avoir réduit la partition d'origine, il est nécessaire de décaler le secteur de départ de la partition d'origine du montant que vous souhaitez étendre la partition racine.
Désormais, je vais vous expliquer étape par étape. Tout d'abord, démarrez Linux à partir de l'USB et affichez la console, car il peut s'agir de n'importe quelle distribution. Puisque l'environnement cette fois-ci est archlinux, le support d'installation de l'arch (archlinux-2019.12.01-x86_64.iso 2019.12.01-x86_64.iso))).
Si vous devez démarrer le système d'exploitation au milieu de votre travail, assurez-vous de passer à la fin de chaque étape avant de démarrer, car cela peut détruire le système de fichiers. En fait, nous avons confirmé que le système d'exploitation démarre sans problème à la fin de chaque étape.
/ dev / nvme0n1p7
Tout d'abord, vérifiez le système de fichiers avec la commande e2fsck (la prochaine commande resize2fs à utiliser ne peut pas être exécutée sans cette opération car elle vérifie l'espace libre en fonction de ce résultat).
On vous demandera si vous souhaitez optimiser l'arborescence d'extension en cours de route, mais il semble que vous n'ayez pas à le faire tant que l'arborescence d'extension ne dépasse pas la limite supérieure. J'ai procédé avec tout non. Référence: https://unix.stackexchange.com/questions/392537/inode-extent-tree-at-level-1-could-be-shorter-ignored
e2fsck -f <Le chemin du système de fichiers que vous souhaitez vérifier>
root@archiso ~ # e2fsck -f /dev/nvme0n1p7
e2fsck 1.45.4 (23-Sep-2019)
Pass 1: Checking inodes, blocks, and sizes
Inode 8404395 extent tree (at level 1) could be shorter. Optimize<y>? no
Inode 8404481 extent tree (at level 2) could be narrower. Optimize<y>? no
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/nvme0n1p7:2498456/16777216 files (0.9% non-contiguous), 32640354/67108864 blocks
e2fsck -f /dev/nvme0n1p7 7.08s user 0.82s system 6% cpu 2:07.42 total
Ensuite, exécutez le processus de réduction avec resize2fs.
resize2fs <Le chemin du système de fichiers que vous souhaitez réduire> <Taille de la partition après réduction(K,M,Peut être spécifié avec G etc.)>
root@archiso ~ # resize2fs /dev/nvme0n1p7 200G
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /dev/nvme0n1p7 to 52428800 (4k) blocks.
The filesystem on /dev/nvme0n1p7 is now 52428800 (4k) blocks long.
resize2fs /dev/nvme0n1p7 200G 6.41s user 14.03s system 36% cpu 55.878 total
Jusqu'à présent, la réduction réelle du système de fichiers est terminée, mais ces informations ne sont pas reflétées dans le LVM (la couche où la taille de partition de chaque partition est enregistrée). Par conséquent, utilisez fdisk pour mettre à jour le LVM.
root@archiso ~ # fdisk <Volume contenant des partitions réduites>
Supprimez les informations de la partition réduite avec la commande d,
Recréez les informations en entrant les informations de partition modifiées à la taille après réduction avec la commande n.
Enregistrer dans LVM avec la commande w
root@archiso ~ # fdisk /dev/nvme0n1
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1-7, default 7): 7
Partition 7 has been deleted.
Command (m for help): n
Partition number (7-128, default 7):
First sector (370976768-1000215182, default 370976768):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (370976768-1000215182, default 1000215182): +200G
Created a new partition 7 of type 'Linux filesystem' and of size 200 GiB.
Partition #7 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: n
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
À ce stade, la réduction de «/ dev / nvme0n1p7» est terminée.
/ dev / nvme0n1p7
et créez un secteur non alloué après la partition racine / dev / nvme0n1p6
Utilisez sfdisk pour déplacer la partition. Cette commande met également à jour le LVM, cette étape est donc tout ce que vous devez faire.
Veuillez noter que ce processus prend du temps. Dans ce cas, c'était un SSD et je pensais que cela prendrait des dizaines de minutes, mais cela a pris environ 6 heures.
echo '+<La taille que vous souhaitez déplacer(=Taille étendue de la partition racine)>' | sfdisk --move-data <Volume contenant la partition que vous souhaitez déplacer> -N <Numéro de version à déplacer>
root@archiso ~ # echo '+50G' | sfdisk --move-data /dev/nvme0n1 -N 7
Checking that no-one is using this disk right now ... OK
Disk /dev/nvme0n1: 476.96 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: KXG50ZNV512G TOSHIBA
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 80F7A56F-2E69-49B5-8A44-09E9998615AE
Old situation:
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
/dev/nvme0n1p3 239616 168011775 167772160 80G Microsoft basic data
/dev/nvme0n1p4 168011776 170108927 2097152 1G Windows recovery environment
/dev/nvme0n1p5 170108928 274966527 104857600 50G Microsoft basic data
/dev/nvme0n1p6 274966528 370976767 96010240 45.8G Linux filesystem
/dev/nvme0n1p7 370976768 790407167 419430400 200G Linux home
/dev/nvme0n1p7:
New situation:
Disklabel type: gpt
Disk identifier: 80F7A56F-2E69-49B5-8A44-09E9998615AE
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
/dev/nvme0n1p3 239616 168011775 167772160 80G Microsoft basic data
/dev/nvme0n1p4 168011776 170108927 2097152 1G Windows recovery environment
/dev/nvme0n1p5 170108928 274966527 104857600 50G Microsoft basic data
/dev/nvme0n1p6 274966528 370976767 96010240 45.8G Linux filesystem
/dev/nvme0n1p7 475834368 895264767 419430400 200G Linux home
Data move:
typescript file : /root/sfdisk-nvme0n1p7.move
old start: 370976768, new start: 475834368 (move 419430400 sectors)
/ dev / nvme0n1p6
resize2fs a une fonction pour changer la taille de la partition en fonction des informations fdisk. Par conséquent, mettez d'abord à jour les informations sur le LVM avec fdisk et effectuez l'expansion réelle avec resize2fs.
Pour fdisk, utilisez la commande suivante comme dans STEP1.
root@archiso ~ # fdisk <Volume contenant la partition que vous souhaitez agrandir>
Supprimez les informations de la partition que vous souhaitez étendre avec la commande d,
Entrez les informations de partition redimensionnées avec la commande n pour recréer les informations.
Enregistrer dans LVM avec la commande w
root@archiso ~ # fdisk /dev/nvme0n1
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1-7, default 7): 6
Partition 6 has been deleted.
Command (m for help): n
Partition number (6,8-128, default 6): 6
First sector (274966528-1000215182, default 274966528):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (274966528-475834367, default 475834367):
Created a new partition 6 of type 'Linux filesystem' and of size 95.8 GiB.
Partition #6 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: n
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Ensuite, après avoir exécuté le même e2fsck que STEP1, exécutez resize2fs sans spécifier la taille de la partition. Contrairement au temps de réduction, l'expansion a été achevée en un instant.
root@archiso ~ # e2fsck -f /dev/nvme0n1p6
(Omission:Le résultat de l'exécution sera similaire à celui de STEP1)
root@archiso ~ # resize2fs /dev/nvme0n1p6
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /dev/nvme0n1p6 to 25108480 (4k) blocks.
The filesystem on /dev/nvme0n1p6 is now 25108480 (4k) blocks long.
Ceci termine le processus.
Resize2fs
est pratique pour mettre à l'échelle les partitions, et --move-data
de sfdisk
est pratique pour déplacer des secteurs!
Lors du passage dans un secteur, je pensais que je devais utiliser dd pour m'en débarrasser, mais utiliser sfdisk a résolu le problème en un seul coup! !!
Recommended Posts