GNU/Linux >> Linux Esercitazione >  >> Linux

Come spostare una partizione in GNU/Linux?

Modo manuale con dd e 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

Ora sto aspettando circa 2 ore. (più sembra più 18h...)

Nota:questo sposta solo i dati indietro, non in avanti.

Pausa:

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

# kill -9 907

remember 586921398272/512 = 1146330856

Ripresa:

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

sfdisk , che intende essere un fdisk con script, ha da qualche versione il --move-data opzione. Esempio dalla loro pagina man:

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

Puoi sempre usare dd .

  • Avvia da un liveCD (o in qualsiasi altro modo che garantisca che la partizione non sia montata)
  • dd if=/dev/sdc2 of=somefile bs=1M per creare una copia della partizione su un file.
  • fdisk (o quello che preferisci) per eliminare la partizione
  • fdisk (o quello che preferisci) per creare la partizione nella posizione desiderata.
  • dd of=/dev/sdc2 if=somefile bs=1M per ripristinare il contenuto dal file.

Linux
  1. Partizionare un'unità su Linux con GNU Parted

  2. Come partizionare un disco in Linux

  3. Come gestire una partizione di scambio in Linux

  4. Come abilitare la partizione di swap Linux?

  5. Come posso cambiare la partizione di swap in Linux?

Come modificare l'UUID della partizione nel filesystem Linux

Come clonare una partizione o un disco rigido in Linux

Come spostare la directory principale su una nuova partizione o disco in Linux

Come spostare una directory in Linux

Come spostare un gran numero di file in Linux

Come crittografare la partizione su Linux