Redimensionner ses partitions :


#1

Bonsoir,

J’ouvre un nouveau sujet, car il le mérite à lui seul !
$ df -h
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/hda1 250M 249M 0 100% /
tmpfs 253M 0 253M 0% /dev/shm
/dev/hda9 9,5G 709M 8,4G 8% /home
/dev/hda8 361M 8,1M 334M 3% /tmp
/dev/hda5 4,3G 2,4G 1,8G 58% /usr
/dev/hda6 2,8G 202M 2,5G 8% /var
/dev/hdb1 75G 30G 45G 40% /mnt/hdb1
/dev 250M 249M 0 100% /.dev
none 5,0M 772K 4,3M 16% /dev

Comme vous voyez, hda1 est plutôt à l’étroit.
Avec qtparted, j’ai fait de la place sur hda5.
Mon problème : comment déplacer la partition étendue qui commence avec la hda5 pour libérer de l’espace pour hda1, autrement qu’avec un fdisk qui va me supprimer toutes mes données ??
Je sais, je suis exigant :slightly_smiling:

Merci d’avance :unamused:


#2

regarde par la debian-fr.org/forum/viewtopic.php?t=1004


#3

Oui merci, je connais déjà les logiciels évoqués.
Seulement, ils permettent tout, sauf ce que je demande : agrandir la partition primaire au dépends de la première partition étendue.
Pour information, sous Windows, j’ai utilisé Partition Magic qui ressemble à qtparted, et il ne permettait pas non plus de faire ça.
Il me reste une solution : plusieurs coups de partimage pour sauver les données, un bon coup de fdisk pour refaire les partitions, et de nouveau des coups de partimage pour recoler les données.
Ou plus radical : tout réinstaller, sur 2 partitions cette fois :
/ sur hda1 : 10 Go
/home sur hda2 : 10 Go
Là, j’aurai le temps de voir venir…


#4

Si tu as de la place sur un de tes disques:

Idéalement, il faudrait stopper l’interface graphique et descendre en single user:

  • Single user: (ca te stoppes X-window en même temps)
    init S

-Forcer la synchronisation des filesystems:
sync;sync;sync
umount /usr

  • Trouver une partition au minimum égale à l’espace occupé par /usr :
    mkfs.ext3 /dev/sur-la-partition-ou-tu-as-de-la-place
    fsck /dev/sur-la-partition-ou-tu-as-de-la-place

  • Créer un point de montage provisoire sur la racine:
    mkdir /new-usr
    -Monter ton nouvel emplacement sur ton point de montage provisoire:
    mount /dev/sur-la-partition-ou-tu-as-de-la-place /new-usr

  • dump /remplacer /dev/rdsk… par le device de ton /usr actuel

  • Ensuite, au lieu de stocker ton backup dans un fichier ou sur une tape, tu le “pipe”

  • directement dans la commande restore qui va le restorer au bon endroit grace à

  • (cd /new-usr; restore xf -)

dump 0f - /dev/rdsk/c0t4d0s1 | (cd /new-usr; restore xf -)

  • Ensuite, quand le dump/restore est terminé

  • Modifier ton /etc/fstab pour remplacer le /dev concernant ton ancien /usr par le device

  • concernant ton nouveau /usr

  • Et pour terminer, tu pourras sans risque utiliser fdisk ou cfdisk pour redimentionner ton - /

  • Ceci, sans risque de perte de données. Fais gaffe tout de même pendant le fdisk à ce - que tu saisis comme valeurs !

Avant de rebooter, lances un “mount /usr” pour vérifier qu’il n’y pas d’erreur au niveau de /etc/fstab.

Cette procédure, je te l’accordes n’est pas forcément évidente au premier abord, mais je l’ai utilisée plusieurs fois et ça marche parfaitement.

Vérifies le manuel de dump/restore avant de te lancer également

Je te souhaites plein succès dans ta périlleuse mission ! :slightly_smiling:


#5

bizarre ton probléme quand même. Comment fais-tu pour utiliser 250Mo sur ton / vu le partitionnement judicieux que tu as fais? Avec un / de 100 Mo, on utilise rarement plus de 50% de la partition dans cette configuration. T’aurais pas tout un tas de vieilles images de noyaux qui traînent par hasard ?


#6

Possible vu comment je galère depuis que j’essaie de compiler ce foutu noyau !
Comment je peux nettoyer tout ça ?


#7

ça dépend comment tu compiles tes noyaux. Si tu crées de .deb, tu peux virer tes anciens noyaux avec un apt-get remove. Sinon, pour le faire “à la main”, jette un oeil dans /lib/modules pour virer les modules de tes vieilles versions de noyau et dans /boot pour virer le images de noyau et les initrd.


#8

Rien de bien gros là-dedans.
Par contre, mon dossier /root/ fait 110 Mo à lui seul. Ca semble bizarre ça, non ?
Puis-je le purger un peu ?? Quels dossiers/fichiers doivent absolument être laissés ?


#9

normalement, il n’y a rien de vital dans root, juste des fichiers qui déterminent les paramêtres d’environnement du root. Au pire, déplace le dans le /home, et modifie le home directory du root si t’as peur de perdre des trucs importants.


#10

ATTENTION !!! Hier soir, quand je t’ai donné le détail des opérations à effectuer, j’ai été un peu vite en besogne … :open_mouth:

Etant donné qu’il s’agit de la partition / que tu dois redimentionner, l’opération sera encore un peu plus compliquée.

Tout ce que j’ai dit concernant /usr reste valable.

Avant d’utiliser fdisk/cfdisk sur ta partition / tu dois y faire les mêmes opérations que sur /usr.

Le mieux pour l’ensemble de l’opération serait de ne monter aucun filesystem … !

Oui, oui c’est possible :slightly_smiling:

Détail des opérations à effectuer:

Je part du principe que tu utilises ton disque hdb, étant donné que apparement il y reste encore pas mal de place dispo:

  1. Boot à partir d’un CD d’install, knoppix par exemple. Tu y trouveras tous les outils nécessaires pour faire la manip: mount, cfdisk, dump,restore …

Et tant qu’à faire refait toutes tes partitions, c’est-à-dire; / /usr /home /tmp /var
De cette manière, tu pourras repartitionner ton hda l’esprit tranquille … :slightly_smiling:

  1. mount /dev/hdb1 /mnt/hdb1

  2. mkdir /mnt/hdb1/temp-root

  3. mkdir /mnt/hdb1/temp-usr

  4. mkdir /mnt/hdb1 /temp-var

  5. mkdir /mnt/hdb1 /temp-home

  6. mkdir /mnt/hdb1 /temp-tmp <— (pas nécessaire, mais bon …)

  7. dump 0f - /dev/hda1 | (cd /temp-root; restore xf -)

  8. dump 0f - /dev/hda5 | (cd /temp-usr; restore xf -)

  9. dump 0f - /dev/hda6 | (cd /temp-var; restore xf -)

  10. dump 0f - /dev/hda8 | (cd /temp-tmp; restore xf -)

  11. dump 0f - /dev/hda9 | (cd /temp-home; restore xf -)

  12. Ensuite, tu utilise fdisk ou cfdisk pour repartitionner ton hda comme tu veux et tu est tranquille étant donné que tout est sauvegardé sur les /mnt/hdb1/temp-*

  13. mkfs de tes nouvelles partitions /dev/hda…

  14. mkdir /new-root /new-usr /new-var /new-tmp /new-home

  15. mount /dev/… /new-root
    cd /new-root
    restore rf /temp-root

  16. mount /dev/… /new-usr
    cd /new-usr
    restore rf /temp-usr

… Et idem pour toutes les paritions qui ont été dumpée de 8 à 12
Pour chaque filesystem restauré, restore te balancera une insulte du genre:

N’en tiens pas compte et laisses-le râler. C’est tout simplement parce que le directory lost+found est créé au moment de la création du filesystem (mkfs) et il essaye de restorer celui du backup, donc …



Ensuite: cd /new-root/etc
puis éditer fstab pour faire correspondre tes nouveaux devices à tes partitions.

Il ne faut pas oublier de ré-installer lilo ou grub !!!

Et pour terminer, un reboot devrait te permettre de retrouver toutes tes billes …

Voilà, je crois que cette fois-ci je n’ai rien oublié :confused:

Bonne soirée

jabba


#11

[quote]BobX a écrit:
bizarre ton probléme quand même. Comment fais-tu pour utiliser 250Mo sur ton / vu le partitionnement judicieux que tu as fais? Avec un / de 100 Mo, on utilise rarement plus de 50% de la partition dans cette configuration. T’aurais pas tout un tas de vieilles images de noyaux qui traînent par hasard ?[/quote]

Ou alors des “core dump” ?
Les core files sont en quelques sorte des “cadavres” de programmes qui ont mal fini…

Par exemple quand tu lance un programme quelquonque, ca arrive qu’il plante et alors il laisse une image mémoire du moment oû il a planté. De cette manière, à certaines conditions les développeurs peuvent récupérer ce fichier pour analyser les derniers instants de vie du défunt :slightly_smiling: pour y tracer un bug par exemple.

Pour supprimer les core-files, lance la commande suivante:

find / -name core 2>/dev/null | xargs rm -f

Ca te purgera ton / de tous ces restes inutiles, s’il y en a. Ce qui permettra à ton / de souffler un peu en attendant :slightly_smiling:

On mets souvent ce genre de commande dans la crontab pour que le ménage soit fait régulièrement.


#12

Ca ne m’a rien fait gagner : les seuls “core” détectés étaient des dossiers que la commande ne pouvait pas supprimé (heureusement d’ailleurs, vu les dossiers).
Par contre, en purgeant le dossier /root/, j’ai gagné 100 Mo, qui m’ont permis de terminer ma compilation et installation du noyau 2.6.8 avec support nvidia : me voilà heureux :slightly_smiling:


#13

pour éviter les core dump, je crois me souvenir qu’avec un “ulimit 0”, il limite à 0 la taille des core, mais il n’y a pas de page de man (ou alors, c’est dans man bash, mais pas le courage de chercher).


#14

moi non plus je ne rappelle plus mais si je lance la commande:

[root@aspirateur root]# ulimit
unlimited
[root@aspirateur root]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
[root@aspirateur root]# ulimit -c
0
[root@aspirateur root]#

Ca semble indiquer que le 0 donne justement le droit de créer des core files de taille illimitée, non ?

A voir, donc …


#15

N’EXECUTEZ PAS INCONSIDEREMENT
find / -name core 2>/dev/null | xargs rm -f
VOUS RISQUERIEZ DE SUPPRIMMER DES FICHIERS CRITIQUES

pour voir les fichiers que vous risqueriez de supprimmer faites d’abord un
find / -name core 2>/dev/null -print

à la limite,
find /home -name core 2>/dev/null | xargs rm -f
peut être utile…
(quand même, t’es fou jabba de balancer sans précaution :slightly_smiling: )

sinon, ulimit --help ne donne rien :imp:
par contre, l’aspect du ulimit -a me paraitrait plutot vouloir dire que debian configurerait l’ulimit du core à 0 (et que l’option pour fixer la taille de ce core c’est -c ).
Effectivement, je n’ai aucun core sur mon disque (et pourtant, j’ai eu de la plante)


#16

[quote]pour voir les fichiers que vous risqueriez de supprimmer faites d’abord un
find / -name core 2>/dev/null -print[/quote]

Tu as raison MattOTop, il vaut mieux prendre ses précautions …

Ah ouais ?

Ceci dit, pour la petit histoire, les serveurs Solaris pré-installés sont livré avec ce genre de ligne dans la crontab … Et il en était de même avec les Digital Tru64, alors …
Par principe, je réinstalle toujours mes serveurs pré-configurés… en remettant souvent la crontab standard de Sun !

Je ne dis pas que tu as tort, mais je n’ai jamais eu le moindre problème avec ce genre de commande. Je ne suis de loin pas un spécialiste linux, y aurait-il une contre-indication pour linux ?

Mais il est vrai que par mesure de précaution on pourrait par exemple, “piper” la commande find avec la commande mailx pour s’envoyer la liste des fichiers trouvés par email…

Je re-confirme, on n’est jamais assez prudent :slightly_smiling:


#17

Pour ce qui est du danger, imagine qu’un gars tape un peu vite, et mette un -rf au lieu de -f (les deux touches sont l’une a coté de l’autre sur un azerty) :laughing:

sinon, petite parenthese: tu peux piper le resultat de ton code dans un xargs, mais je te rappelles que find possede une option -exec, qui exectue la commande sur ce qu’il a trouvé…


#18

C’est vrai, et c’est bien pour ça que je parlais de crontab, car normalement on ne lance pas ce genre de commande à la pogne, mais via crontab.

La prochaine fois je livrerai le fond de ma pensée plus clairement … :slightly_smiling:

C’est encore juste… en finissant la commande find avec:
-exec commande {} ;

J’utilise les 2 syntaxes, selon les cas … et l’humeur du moment :confused:


#19

J’ai lu vos réponses , mais j’avoue être un peu perdu , voici donc ma table des partitions :

hda :
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda2 2551 4864 18587205 f W95 Ext’d (LBA)
/dev/hda5 2551 4864 18587173+ 7 HPFS/NTFS

hdb :
Device Boot Start End Blocks Id System
/dev/hdb1 1 5099 40957686 7 HPFS/NTFS
/dev/hdb2 5100 9000 31334782+ f W95 Ext’d (LBA)
/dev/hdb3 * 9001 9729 5855692+ 83 Linux
/dev/hdb5 5100 8327 25928878+ 7 HPFS/NTFS
/dev/hdb6 8965 9000 289138+ 82 Linux swap

Comme vous le voyez , j’ai 2 partitions linux , le swap et le reste . J’ai précédement redimensionner une partition NTFS sur le même disque ou est installé ma debian , de façon à creer de l’espace libre .

Donc j’ai un peu moins de 5 go non alloué . Ce que je voudrais faire , c’est les allouer à hbd3 , qui est une partition de typ Ext3 . Le problème est qu’il m’est impossible de le faire depuis partition magique . De plus , depuis linux , je ne vois pas comment le faire , vu que je n’ai qu’une seule partoche sur laquelle travailler , et c’est justement celle-ci .

Bref , je vois pas très bien comment faire… sachant que tout est configuré (aah ce fglrx ;p) , donc si possible éviter de me recogner une install complète… Y a pas un soft qui gere tout simplement le resizing de partition ext3 ?


#20

Ouaip effectivement, si tous tes disques sont occcupés ca va être difficile d’utiliser la méthode du dump/restore … :confused:

Donc si j’ai bien compris tu as réduit hdb1 et/ou hdb2 pour faire de la place à linux ? Ce qui te donne hdb3 qui est déjà sous linux + encore 5GB de libre que tu voudrais ajouter à ce hdb3 ?

Tu n’aurais pas un disque externe USB sous la main par hasard ?
Si tu en as un tu pourrais faire le dump/restore sans problème.

C’est un peu compliqué mais on s’en sort:

  1. tu boote depuis un cd Knoppix par exemple
  2. tu fais le dump de ton hdb3 sur ton disque externe
  3. tu redimentionne ton hdb3 avec cfdisk pour y inclure tes 5 GB
  4. mkfs.ext3 sur ta partition agrandie
  5. mount de ta partition agrandie
  6. restore de ta sauvegarde sur ta partition agrandie
  7. Ne pas oublier d’adapter /etc/fstab !!!

… Et reboot !

Bien sûr, si tu ne dispose pas d’un espace de stockage pour y faire ton dump (disque supplémentaire ou USB ou tape) ca sera difficile…

… Si t’as pas tout ça, vire Windows pour faire de la place! :laughing: