J'ai une partition ext4 à la fin d'un disque dur et je souhaite la redimensionner à la taille totale du disque (le reste du disque est vide). Ce n'est pas la partition racine, mais simplement une partition de données. Le démontage de la partition ne pose donc aucun problème. Le serveur Ubuntu est en cours d'exécution sur la machine, et aucun écran, clavier, souris ou lecteur de disque optique n'est connecté. Le démarrage d'un environnement en direct à utiliser cette approche serait un peu fastidieux et j'aimerais éviter cette.
Quelqu'un sait un moyen facile de faire cela? Pour moi, cela s'avère être une tâche beaucoup plus difficile que je ne l'aurais prévu, mais laissez-moi élaborer:
Bien sûr, les partitions de disques ont toutes été démontées lors des opérations suivantes. J'ai d'abord essayé via Parted: j'ai supprimé la première partition qui n'était plus nécessaire, puis j'ai voulu redimensionner ou déplacer la partition ext4. Mais Parted m'a dit qu'il ne pouvait pas le faire, en raison de certaines fonctionnalités du système de fichiers d'ext4 (avec un message d'erreur étrange: "Erreur: le système de fichiers a une fonctionnalité incompatible activée. Les fonctionnalités compatibles sont has_journal, dir_index, filetype, sparse_super et large_file . Utilisez tune2fs ou debugfs pour supprimer des fonctionnalités. "- Quelles sont donc les fonctionnalités incompatibles?); ce que j’ai tiré de cela, et en tant que réponse aux commentaires dans une autre question , il n’est pas possible pour Parted de changer le début d’une partition ext4.
Pourquoi gparted peut-il sembler faire l'affaire (voir la première question liée) sans se séparer?
Eh bien, comme j’avais assez d’espace au début du disque (plus que la taille de la partition à déplacer), j’ai pensé essayer une autre approche: créer une seconde partition à l’avant, copier le contenu de celle située à l’arrière. retour à celui-ci, puis supprimez l'ancienne partition et redimensionnez la nouvelle à la taille complète. Cependant, cela s'est également avéré impossible: après la création de la partition et la copie du contenu (via dd if=/dev/sdb2 of=/dev/sdb1
), la partition ne peut pas être montée ("superblock de journal manquant").
Donc, pour le moment, je suis à court d'idées. Je vais probablement copier tout ce qui est vital sur un autre disque, supprimer à nouveau toutes les partitions et en créer une grande. Je me demande si c'est un tel problème - ou est-ce que je néglige l'évidence?
Cela prend un peu de temps, mais cela peut être fait si:
En supposant que/dev/sdb1 et que l’espace non alloué est plus grand que la quantité de données de/dev/sdb1:
Avant de commencer, créons des répertoires de points de montage dans /mnt/
:
mkdir/mnt/old && mkdir/mnt/new
Le disque ressemble maintenant à ceci:
[(....... UNALLOCATED .........) (xxxx/dev/sdb1 xxxxxx)]
e2fsck -f -y -v /dev/sdb1
#juste pour être sûr qu'il n'y a pas d'erreur.fdisk /dev/sdb
n p 2 wq
mkfs.ext4 /dev/sdb2
[(xxxxxx/dev/sdb2 xxxxxxxxxxx) (xxxx/dev/sdb1 xxxxxx)]
mount /dev/sdb2 /mnt/new && mount /dev/sdb1 /mnt/old
mv /mnt/old/* /mnt/new/
(Vous obtiendrez une erreur à propos de lost + found, vous pouvez l'ignorer)cd / && umount /mnt/old && umount /mnt/new
cfdisk /dev/sdb
sdb1
sdb2
e2fsck -f /dev/sdb1
resize2fs /dev/sdb1
Maintenant, le disque ressemble à ceci:[(xxxxxxxxxxxxxxxxxxx/dev/sdb1 xxxxxxxxxxxxxxxxxxx))]
mount /dev/sdb1 /your/mount/point
FINI!
Voici comment je l'ai fait sur des machines sans tête avec un accès SSH uniquement: tilisez VNC et obtenez gparted
pour le faire. Utilisez openbox
pour un environnement minimal et supprimez-le une fois que c'est fait s'il ne s'agit que d'une seule fois.
Sudo apt-get installer vnc4server openbox gparted Vnc4server # définir un mot de passe, créer la configuration initiale Vnc4server -kill: 1 Sed -i -e-s '/ x-window-manager/openbox-session/g '~/.vnc/xstartup vnc4server
Ouvrez le port entrant 5901 et accédez-y avec un client VNC. Cliquez avec le bouton droit pour démarrer le terminal dans openbox, et vous pourrez exécuter toutes les applications GTK +, y compris gparted
. apt-get remove
et autoremove
si vous le souhaitez lorsque vous avez terminé.
Je suis allé dans la direction de l'interface graphique:
1) Lancer le live linux CD (neuf dans mon cas)
2) Se connecter à Internet
3) se faire gparted
Sudo apt-get install gparted
4) Après avoir tout redimensionné dans la GUI soignée, lancez la réparation de démarrage.
5) https://help.ubuntu.com/community/Boot-Repair Cela revient essentiellement à l'obtenir et à le relancer:
Sudo add-apt-repository ppa:yannubuntu/boot-repair && Sudo apt-get update
Sudo apt-get install -y boot-repair && boot-repair
6) Sélectionnez la fixation des options communes et sélectionnez NON si elle vous demande si votre lecteur est amovible (si ce n’est pas le cas).
Résolu mon problème.
Premièrement, j'aurais fait comme Frantique, sauf que j'aurais déménagé avec rsync
car il est conçu pour en faire une copie avec tous les attributs intacts. La commande mv
ne ferait pas cela.
Mais si je voulais vraiment faire un travail sérieux, car je déplacerais des choses de toute façon, j'aurais déplacé les données sur un volume LVM2, car cela facilite tellement la gestion des volumes, des disques et des partitions à l'avenir.
Comme si vous souhaitez ajouter plus d'espace, ajoutez simplement un disque au groupe de volumes. Ajouter, supprimer ou redimensionner des partitions, faites-le simplement sur le volume logique. Pas besoin de penser à la mise en page physique. Pour supprimer les données d'un disque qui commence à signaler de nombreuses erreurs, ajoutez simplement un nouveau disque, puis déplacez les données du disque défectueux, puis supprimez le disque du volume. Toutes les données déplacées d'un disque à un autre.
Tout d'abord, sauvegardez vos données, pour éviter la perte de données.
Étant donné que parted
ne prend pas en charge ext4, vous devez utiliser resize2fs
.
cfdisk/dev/sdx
mkfs.ext4
!)resize2fs/dev/sdxY
Sans donner aucun autre paramètre à resize2fs
, le système de fichiers sera étendu à la taille de la partition.
A propos des fonctionnalités incompatibles: c'est la extents
qui est utilisée par ext4.