GNU/Linux >> Tutoriels Linux >  >> Linux

Comment déplacer une partition sous GNU/Linux ?

Manière manuelle avec dd et fdisk :

# fdisk -l /dev/sdb | grep sdb3
/dev/sdb3        73402368  1953525167   940061400   83  Linux

# fdisk /dev/sdb
Command (m for help): d
Partition number (1-4): 3
Command (m for help): n
Partition number (1-4, default 3): 3
First sector (73385984-1953525167, default 73385984): 
Using default value 73385984
Last sector, +sectors or +size{K,M,G} (73385984-1953525167, default 1953525167): 
Using default value 1953525167
Command (m for help): w
The partition table has been altered!

# fdisk -l /dev/sdb | grep sdb3
/dev/sdb3        73385984  1953525167   940069592   83  Linux

# dd conv=notrunc bs=512 iflag=fullblock if=/dev/sdb3 count=100 skip=$((73402368-73385984)) seek=0 2> /dev/null | file -s -
/dev/stdin: LUKS encrypted file, ver 1 [aes, cbc-essiv:sha256, sha1] UUID: af1c47f0-4ca5-4ea7-a091-065bd263653f

# dd conv=notrunc bs=512 iflag=fullblock if=/dev/sdb3  skip=$((73402368-73385984)) seek=0 of=/dev/sdb3

# file -s /dev/sdb3
/dev/sdb3: sticky LUKS encrypted file, ver 1 [aes, cbc-essiv:sha256, sha1] UUID: af1c47f0-4ca5-4ea7-a091-065bd263653f

En attendant environ 2h. (plus ça ressemble plus à 18h...)

Remarque :cela ne fait que déplacer les données vers l'arrière, pas vers l'avant.

Pause :

# pidof dd
907
# kill -STOP 907
# cat /proc/907/fdinfo/1
pos:    586921398272
flags:  0100001

# kill -9 907

remember 586921398272/512 = 1146330856

Reprise :

dd conv=notrunc bs=512 iflag=fullblock if=/dev/sdb3  skip=$((1146330856+73402368-73385984)) seek=1146330856 of=/dev/sdb3

sfdisk , qui se veut être un fdisk scriptable, a depuis certaines versions le --move-data option. Exemple tiré de leur page de manuel :

echo '+100M,' | sfdisk --move-data /dev/sdc -N 1

Vous pouvez toujours utiliser dd .

  • Démarrer à partir d'un liveCD (ou de toute autre manière garantissant que la partition n'est pas montée)
  • dd if=/dev/sdc2 of=somefile bs=1M pour créer une copie de la partition sur un fichier.
  • fdisk (ou ce que vous voulez) pour supprimer la partition
  • fdisk (ou ce que vous voulez) pour créer la partition à l'endroit de votre choix.
  • dd of=/dev/sdc2 if=somefile bs=1M pour restaurer le contenu du fichier.

Linux
  1. Partitionner un disque sous Linux avec GNU Parted

  2. Comment gérer une partition d'échange sous Linux

  3. Comment déplacer le swap d'une partition de disque vers un volume LVM sous Linux

  4. Comment activer la partition d'échange Linux?

  5. Comment changer la partition swap sous Linux ?

Comment changer l'UUID de la partition dans le système de fichiers Linux

Comment cloner une partition ou un disque dur sous Linux

Comment déplacer le répertoire personnel vers une nouvelle partition ou un nouveau disque sous Linux

Comment déplacer un répertoire sous Linux

Comment déplacer un grand nombre de fichiers sous Linux

Comment chiffrer une partition sous Linux