GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verschiebt man eine Partition in GNU/Linux?

Manueller Weg mit dd und 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

Warte jetzt ca. 2h. (mehr sieht eher aus wie 18h...)

Hinweis:Dies verschiebt Daten nur zurück, nicht vorwärts.

Anhalten:

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

# kill -9 907

remember 586921398272/512 = 1146330856

Fortsetzung:

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

sfdisk , das eine skriptfähige fdisk sein soll, hat seit einigen Versionen den --move-data Möglichkeit. Beispiel aus ihrer Manpage:

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

Sie können immer dd verwenden .

  • Booten Sie von einer Live-CD (oder auf andere Weise, die sicherstellt, dass die Partition nicht gemountet ist)
  • dd if=/dev/sdc2 of=somefile bs=1M um eine Kopie der Partition auf einer Datei zu erstellen.
  • fdisk (oder was auch immer Sie möchten) um die Partition zu löschen
  • fdisk (oder was auch immer Sie möchten), um die Partition an Ihrem gewünschten Ort zu erstellen.
  • dd of=/dev/sdc2 if=somefile bs=1M um den Inhalt aus der Datei wiederherzustellen.

Linux
  1. Partitionieren Sie ein Laufwerk unter Linux mit GNU Parted

  2. So partitionieren Sie eine Festplatte unter Linux

  3. So verwalten Sie eine Swap-Partition unter Linux

  4. So verschieben Sie Swap von der Festplattenpartition auf das LVM-Volume in Linux

  5. Wie aktiviere ich die Linux-Swap-Partition?

So ändern Sie die UUID der Partition im Linux-Dateisystem

So klonen Sie eine Partition oder Festplatte unter Linux

So verschieben Sie das Home-Verzeichnis auf eine neue Partition oder einen neuen Datenträger in Linux

So verschieben Sie ein Verzeichnis unter Linux

So verschieben Sie eine große Anzahl von Dateien in Linux

So verschlüsseln Sie eine Partition unter Linux