wiki:linux/Filesystem/fdisk

LVM, autofs, blkid, dd, dd/Festplatte (HDD) sicher löschen, df, du, fdisk, findmnt, ls, lsblk, mount, rm, wipefs


Allgemein

  • fdisk starten
    Es wird empfohlen, fdisk nicht im DOS-kompatiblen Modus und mit Sektoren als Einheiten zu starten:
    $ fdisk -c -u DEVICE
    

Wenn man öfters mit fdisk arbeitet, legt man sich dafür am besten ein alias an:

$ alias fdisk="fdisk -c -u"
  • Partitionstabelle aktualisieren
    Nach Änderungen an der Partitionstabelle empfiehlt es sich, diese neu einzulesen. Dazu eignet sich partprobe aus dem parted Paket.
  • Größenangabe bei neuen Partitionen
    Bei Neuanlage einer Partition werden Start- und Endpunkt abgefragt. Die Angabe des Endpunktes und damit der Größe der Partition ist wie folgt möglich:
    • Sektor absolut
      Möchte man eine Partitionsgröße von bsw. 2097152 Sektoren (1G), so muss man diese zum Startsektor addieren, d. h. eine Partition, die bei Sektor 2048 beginnt und 1G groß sein soll endet bei Sektor 2099200 (2048 + 2097152):
      First sector (2048-62533295, default 2048): 2048
      Last sector, +sectors or +size{K,M,G} (2048-62533295, default 62533295): 2099200
      
    • Sektor relativ
      Damit erspart man sich die Rechnerei... Einfach ein + vor die gewünschte Sektorengröße setzen:
      First sector (2048-62533295, default 2048): 2048
      Last sector, +sectors or +size{K,M,G} (2048-62533295, default 62533295): +2097152
      
    • Größe Kilobyte, Megabyte, Gigabyte
      Schön, wenn man keine halben Sachen macht, d. h. 5.5G lassen sich nicht angeben:
      First sector (2048-62533295, default 2048): 2048
      Last sector, +sectors or +size{K,M,G} (2048-62533295, default 62533295): +1G
      

1 KB = 1024 Byte = 2 Sektoren
1 MB = 1024 KB = 1048576 Byte = 2048 Sektoren
1 GB = 1024 MB = 1048576 KB = 2097152 Sektoren
1 TB = 1024 GB = 1048576 MB = 1073741824 KB = 2147483648 Sektoren

Zum Umrechnen Megabyte / Gigabyte in Sektoren kann man sich dieser 2 kleinen Pythonfunktionen bedienen (ausgehend einer Sektorengröße von 512 bytes):

def m2s(m):
    return (m*1048576) / 512

def g2s(g):
    return m2s(g*1024)

Partition vergrößern

Wir starten fdisk und erhalten mit print eine Übersicht der Partitionen:

$ fdisk -c -u /dev/sda

Command (m for help): p

Disk /dev/sda: 32.0 GB, 32017047552 bytes
255 heads, 63 sectors/track, 3892 cylinders, total 62533296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe8813353

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2099200     1048576+  83  Linux
/dev/sda2         2099201     4196353     1048576+  83  Linux
/dev/sda3         4196354     6293506     1048576+  83  Linux

Command (m for help):

Möchte man nun /dev/sda2 um 1G auf dann 2G vergrößern, muss man zuerst /dev/sda3 löschen, da hinter /dev/sda2 kein Platz zur Verfügung steht. Ist man sich nicht ganz sicher, wie groß /dev/sda3 denn ist, notiert man sich am besten die Sektorengröße, in diesem Fall also 6293506 - 4196354 = 2097152 Sektoren

Command (m for help): d
Partition number (1-4): 3

Command (m for help): p

Disk /dev/sda: 32.0 GB, 32017047552 bytes
255 heads, 63 sectors/track, 3892 cylinders, total 62533296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe8813353

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2099200     1048576+  83  Linux
/dev/sda2         2099201     4196353     1048576+  83  Linux

Command (m for help):

Danach wird /dev/sda2 gelöscht um gleich wieder mit neuer Größe erstellt zu werden:

Command (m for help): d      
Partition number (1-4): 2

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First sector (2099201-62533295, default 2099201): 
Using default value 2099201
Last sector, +sectors or +size{K,M,G} (2099201-62533295, default 62533295): +2G

Command (m for help): p

Disk /dev/sda: 32.0 GB, 32017047552 bytes
255 heads, 63 sectors/track, 3892 cylinders, total 62533296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe8813353

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2099200     1048576+  83  Linux
/dev/sda2         2099201     6293504     2097152   83  Linux

Command (m for help):

Jetzt noch /dev/sda3 in selber Sektorengröße (2097152, siehe oben) zurückholen:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First sector (6293505-62533295, default 6293505): 
Using default value 6293505
Last sector, +sectors or +size{K,M,G} (6293505-62533295, default 62533295): +2097152

Command (m for help): p

Disk /dev/sda: 32.0 GB, 32017047552 bytes
255 heads, 63 sectors/track, 3892 cylinders, total 62533296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe8813353

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2099200     1048576+  83  Linux
/dev/sda2         2099201     6293504     2097152   83  Linux
/dev/sda3         6293505     8390657     1048576+  83  Linux

Command (m for help):

Wenn man mit dem Ergebnis zufrieden ist, schreibt (write) man die neue Partitionstabelle auf das Gerät. Hat man nur heilloses Durcheinander geschaffen, verlässt (quit) man fdisk ohne Schreibvorgang.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Und

$ partprobe

nicht vergessen!

Falls /dev/sda2 bereits über ein Filesystem verfügt, muss dieses nun an die neue Größe angepasst werden:

  • "Normales" Filesystem
    $ resize2fs /dev/sda2
    resize2fs 1.41.12 (17-May-2010)
    Resizing the filesystem on /dev/sda2 to 2097152 (4k) blocks.
    The filesystem on /dev/sda2 is now 2097152 blocks long.
    
  • Physical Volume (lvm)
    pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
    
Last modified 5 years ago Last modified on Dec 8, 2014, 5:59:39 PM