Wenn Sie ein Systemadministrator sind, ist die Verwaltung der Festplattenpartition Ihres Linux-Servers eine wichtige Aufgabe.
In diesem Tutorial konzentrieren wir uns darauf, wie Sie das Befehlszeilenprogramm sfdisk verwenden, um Ihre Festplattenpartitionen zu verwalten.
Während sfdisk fdisk ähnlich ist, gibt es einige Partitionsmanipulationsaktivitäten, die in sfdisk sehr einfach durchzuführen sind. Beispielsweise können Sie neue Partitionen in einer nicht interaktiven Methode mit sfdisk erstellen.
Die folgenden sfdisk-Aktivitäten werden in diesem Tutorial behandelt:
- Vorhandene Festplattenpartitionen anzeigen
- Anzeigeeinheiten ändern (Anzeigegröße in MB)
- Neue Festplattenpartitionen erstellen (interaktive Methode)
- Konsistenz der Partitionstabelle überprüfen
- Gesamtpartitionsgröße anzeigen
- Festplattenpartitionsdetails in Textdatei ausgeben
- Neue Partitionen aus Textdatei erstellen (nicht interaktive Methode)
- Erweiterte Partitionsdetails anzeigen
- Festplattengeometrie zum Debuggen anzeigen
- Alle Festplattenpartitionstypen anzeigen
- Manipulieren Sie nur eine einzelne Festplattenpartition
- Probelaufmodus zur Überprüfung
- Markieren Sie eine bestimmte Partition als bootfähig
- Partitionstyp ändern
- Neue Partitionen aus Shell-Skript erstellen (nicht interaktive Methode)
1. Vorhandene Festplattenpartitionen anzeigen
Mit der Option -l können Sie alle Ihre Festplattenpartitionen anzeigen. -l steht für Liste.
Standardmäßig werden die Partitionen aller Festplatten auf Ihren Systemen angezeigt.
# sfdisk -l Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 1044- 1045- 8387584 83 Linux /dev/sda2 0 - 0 0 0 Empty /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Oben:
- Es zeigt die Partitionen sowohl für das sda- als auch für das sdf-Gerät an.
- sda hat nur eine Partition. dh sda1. Aber die Option -l zeigt immer noch alle 4 primären Partitionsinformationen an. Da sda in diesem Beispiel nur eine Partition hat (d. h. sda1), wird für die verbleibenden 3 Partitionen (sda2, sda3, sda4) in der letzten Spalte „Empty“ angezeigt.
- Die Geräte-sdf hat keine Partition. d.h. auf diesem Gerät wurde noch nichts erstellt. Es wird also nichts für dieses Gerät aufgelistet.
Sie können auch Festplattenpartitionen eines bestimmten Geräts anzeigen, indem Sie den Gerätenamen wie unten gezeigt übergeben.
# sfdisk -l /dev/sdf
Anstelle von -l können Sie auch –list wie unten gezeigt verwenden.
sfdisk --list sfdisk --list /dev/sdf
Wenn Sie neu in der Verwaltung von Festplatten sind, möchten Sie vielleicht auch verstehen, wie Sie den regulären vertrauenswürdigen fdisk-Befehl verwenden:7 Beispiele für Linux-fdisk-Befehle zum Verwalten von Festplattenpartitionen
2. Anzeigeeinheiten ändern (Anzeigegröße in MB)
Standardmäßig zeigt sfdisk die Größe in Blöcken an. Sehen Sie sich in der obigen Ausgabe von sfdisk -l die Spalte „#blocks“ an.
Wenn Sie jedoch die Größe in MB anzeigen möchten, verwenden Sie die Option -u wie unten gezeigt. -u steht für Einheit. Sie müssen den Einheitentyp angeben. In diesem Beispiel ist der Einheitentyp, den wir spezifizieren, M (was MB ist)
Die Option -uM ersetzt die Spalte „#cyls“ aus der obigen Ausgabe durch „MiB“ (Größe in MB), wie unten gezeigt.
# sfdisk -l -uM Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: 1MiB = 1024*1024 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End MiB #blocks Id System /dev/sdf1 0+ 8032- 8033- 8225279+ 83 Linux /dev/sdf2 8032+ 8189- 157- 160650 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
Im Folgenden sind die verschiedenen Einheitentypen aufgeführt, die Sie angeben können:
- M für MB
- C für Anzahl der Zylinder (dies ist die Standardeinstellung)
- S für Anzahl der Sektoren
- B für Anzahl der Blöcke (dies wird auch in der Standardausgabe zusammen mit #Zylindern angezeigt)
# sfdisk -l -uM # sfdisk -l -uC # sfdisk -l -uS # sfdisk -l -uB
3. Neue Festplattenpartitionen erstellen (interaktive Methode)
Im folgenden Beispiel nehmen wir eine leere Festplatte (sdf) und erstellen darauf Partitionen mit sfdisk.
# sfdisk /dev/sdf
Das Folgende ist die Ausgabe des obigen Befehls, die zum leichteren Verständnis in mehrere Abschnitte unterteilt ist.
Zuerst wird die sdf-Datei überprüft, um sicherzustellen, dass sie derzeit nicht gemountet ist oder von jemand anderem verwendet wird.
Checking that no-one is using this disk right now ... OK
Als nächstes werden die aktuellen Partitionsinformationen auf diesem Gerät angezeigt. Wie von hier aus zu sehen, gibt es derzeit keine Partition auf dem sdf-Gerät.
Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track sfdisk: /dev/sdf: unrecognized partition table type Old situation: sfdisk: No partitions found
Als nächstes werden Sie aufgefordert, die Partitionsgröße für alle 4 primären Partitionen einzugeben. Selbst wenn Sie nur eine Partition erstellen möchten, werden Sie für alle primären Partitionen zu 4 unterschiedlichen Zeiten aufgefordert.
Im Folgenden:
- In diesem Beispiel möchte ich zwei Partitionen erstellen.
- Als es nach „/dev/sdf1 :“ gefragt wird, erstelle ich die erste Partition. Hier habe ich „0 1024“ eingegeben. 0 ist der Anfang des Zylinders und 1024 ist das Ende des Zylinders für die 1. Partition.
- Als Nächstes erstelle ich die 2. Partition, wenn nach „/dev/sdf2 :“ gefragt wird. Hier habe ich einfach die Eingabetaste gedrückt, wodurch der gesamte verbleibende Speicherplatz belegt und die zweite Partition erstellt wird.
- Als nächstes habe ich einfach die Eingabetaste für sdf3 und sdf4 gedrückt. Da auf sdf kein Platz mehr vorhanden ist, ist es einfach leer, wie unten gezeigt.
- Bitte beachten Sie auch, dass die Partition standardmäßig als „Linux“-Typ erstellt wird. Wenn Sie es in einen anderen Typ ändern möchten, sollten Sie den Typ angeben.
Input in the following format; absent fields get a default value. <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s> Usually you only need to specify <start> and <size> (and perhaps <type>). /dev/sdf1 :0 1024 /dev/sdf1 0+ 1023 1024- 8225279+ 83 Linux /dev/sdf2 : /dev/sdf2 1024 1043 20 160650 83 Linux /dev/sdf3 : /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 : /dev/sdf4 0 - 0 0 0 Empty
Jetzt zeigt sfdisk die Partitionen an, die es erstellt. Wie unten gezeigt, werden zwei Partitionen erstellt (sdf1 und sdf2).
New situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 1023 1024- 8225279+ 83 Linux /dev/sdf2 1024 1043 20 160650 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk.
Abschließend wird um Bestätigung gebeten. Wenn Sie einen Fehler gemacht haben und die obigen Partitionen nicht erstellen möchten, geben Sie zum Beenden „q“ ein. Hier habe ich y eingegeben, um diese beiden neuen Partitionen zu erstellen.
Do you want to write this to disk? [ynq] y Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Schließlich habe ich überprüft, ob die Partitionen erfolgreich mit sfdisk -l erstellt wurden, wie unten gezeigt.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 1023 1024- 8225279+ 83 Linux /dev/sdf2 1024 1043 20 160650 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
In einem verwandten Hinweis zum Erstellen großer Partitionen lesen Sie Folgendes:How to Create Partition on Linux for>2TB Size using Parted GPT
4. Überprüfen Sie die Konsistenz der Partitionstabelle
Verwenden Sie die Option -V (großes V), um eine Konsistenzprüfung für die Partitionstabellen durchzuführen. V steht für Verifizieren.
Wie in der folgenden Ausgabe gezeigt, wird „OK“ angezeigt, wenn alles in Ordnung ist. Dadurch werden auch alle Warnmeldungen angezeigt.
# sfdisk -V Warning: partition 1 does not end at a cylinder boundary /dev/sda: OK Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk. /dev/sdf: OK
Sie können auch nur ein bestimmtes Gerät verifizieren, wie unten gezeigt.
# sfdisk -V /dev/sdf
Außerdem können Sie die Optionen V und l wie unten gezeigt kombinieren.
sfdisk -lV
Wenn Sie die Überprüfung innerhalb eines Shell-Skripts durchführen, können Sie die Option -q zusammen mit V verwenden. q steht für quiet. In diesem Fall wird keine Ausgabe angezeigt. Sie können jedoch den Status des Befehls überprüfen, um zu überprüfen, ob die Konsistenzprüfung bestanden oder fehlgeschlagen ist, wie unten gezeigt.
# sfdisk -Vq # echo $? 0
Wenn Sie die Konsistenz des Festplatteninhalts selbst überprüfen möchten, verwenden Sie diese Methode:10 Beispiele für Linux-Fsck-Befehle zum Überprüfen und Reparieren des Dateisystems
5. Gesamtpartitionsgröße anzeigen
Verwenden Sie die Option -s, um die Gesamtgröße der Festplatte einschließlich aller Partitionen anzuzeigen. -s steht für Größe.
Dies zeigt die gesamte Partitionsgröße in Anzahl von Blöcken an.
Standardmäßig zeigt dies die Gesamtpartitionsgröße für jede einzelne Festplatte in Ihrem System an. Außerdem wird die Gesamtgröße aller Laufwerke in Ihrem System wie unten gezeigt angezeigt.
# sfdisk -s /dev/sda: 8388608 /dev/sdf: 8388608 total: 16777216 blocks
Sie können auch die einzelne Festplatte (oder Partition) wie unten gezeigt angeben.
# sfdisk -s /dev/sdf 8388608 # sfdisk -s /dev/sdf1 1654694
6. Details der Festplattenpartition in Textdatei ausgeben
sfdisk bietet Ihnen auch die Option, alle Festplattenpartitionsinformationen in eine Textdatei zu kopieren.
Verwenden Sie dazu die Option -d. -d steht für Dump.
Standardmäßig gibt -d die Ausgabe auf dem Bildschirm aus. Dazu gehören die Partitionsinformationen für alle Geräte auf Ihrem System.
# sfdisk -d
Sie können auch die Partitionsinformationen eines bestimmten Geräts wie unten gezeigt ausgeben.
# sfdisk -d /dev/sda
Um es in eine Textdatei auszugeben, gehen Sie wie folgt vor. Dadurch werden die Partitionsinformationen von sda in die Textdatei sda.out ausgegeben.
# sfdisk -d /dev/sda > sda.out # cat sda.out # partition table of /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 16775168, Id=83, bootable /dev/sda2 : start= 0, size= 0, Id= 0 /dev/sda3 : start= 0, size= 0, Id= 0 /dev/sda4 : start= 0, size= 0, Id= 0
7. Neue Partitionen aus Textdatei erstellen (nicht interaktive Methode)
Das Schöne an der Option -d ist, dass Sie einen Partitionsspeicherauszug eines bestimmten Geräts nehmen und diesen verwenden können, um einen ähnlichen Partitionsspeicherauszug auf einem anderen Gerät zu erstellen.
Wenn Sie beispielsweise die aktuelle Partition auf dem sda-Gerät auf das sdf-Gerät replizieren möchten, können Sie die Option -d wie unten gezeigt verwenden.
Nehmen Sie zuerst den Dump des sda-Geräts wie im vorherigen Beispiel gezeigt in die Datei sda.out.
Im obigen Beispiel haben wir, wie wir sehen, eine Partition auf dem sda-Gerät.
Auf dem sdf-Gerät haben wir derzeit zwei Partitionen.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 499 500- 4016249+ 83 Linux /dev/sdf2 500 1043 544 4369680 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
Verwenden Sie nun die sda.out-Datei aus dem vorherigen Beispiel und verwenden Sie sie, um ähnliche Partitionen auf dem sdf-Gerät zu erstellen, wie unten gezeigt.
# sfdisk /dev/sdf < sda.out
Der obige Befehl verwendet die Partitionsinformationen aus der Datei sda.out und verwendet sie, um automatisch eine neue Partition auf sdf zu erstellen, ohne den Benutzer um eine Eingabe zu bitten, wie unten gezeigt.
Checking that no-one is using this disk right now ... OK Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Old situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 499 500- 4016249+ 83 Linux /dev/sdf2 500 1043 544 4369680 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty New situation: Units: sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/sdf1 * 2048 16777215 16775168 83 Linux /dev/sdf2 0 - 0 0 Empty /dev/sdf3 0 - 0 0 Empty /dev/sdf4 0 - 0 0 Empty Warning: partition 1 does not end at a cylinder boundary Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Nun, wie Sie aus der folgenden Ausgabe sehen, hat sdf eine neue Partition, die sda ähnlich ist.
# sfdisk -l Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 1044- 1045- 8387584 83 Linux /dev/sda2 0 - 0 0 0 Empty /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 * 0+ 1044- 1045- 8387584 83 Linux /dev/sdf2 0 - 0 0 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
8. Erweiterte Partitionsdetails anzeigen
x steht für erweiterte Partition. Wenn Sie x zusammen mit l kombinieren, werden auch die nicht primären erweiterten Partitionen angezeigt, wie unten gezeigt.
# sfdisk -lx /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 205 206- 1654694+ 83 Linux /dev/sdf2 206 411 206 1654695 83 Linux /dev/sdf3 412 514 103 827347+ 82 Linux swap / Solaris /dev/sdf4 515 1043 529 4249192+ 5 Extended /dev/sdf5 515+ 617 103- 827347 83 Linux - 618 1043 426 3421845 5 Extended - 515 514 0 0 0 Empty - 515 514 0 0 0 Empty /dev/sdf6 618+ 1043 426- 3421844+ 83 Linux - 618 617 0 0 0 Empty - 618 617 0 0 0 Empty - 618 617 0 0 0 Empty
Sie können auch die Option -x verwenden, wenn Sie neue Partitionen erstellen. In diesem Fall fragt (oder erwartet) sfdisk Eingabedeskriptoren für sie.
9. Festplattengeometrie zum Debuggen anzeigen
Wenn Sie Probleme im Zusammenhang mit Partitionstabellen debuggen, sollten Sie unter anderem überprüfen, ob die Partitionstabelleninformationen auf dem Gerät dieselben sind, wie sie vom Kernel verstanden werden.
Es ist eine gute Idee, durch direktes Lesen der Partitionstabelle zu überprüfen, ob die Vorstellung des Kernels von der Geometrie des Geräts mit der tatsächlichen Geometrie des Geräts übereinstimmt.
Die Option -G (Großbuchstabe G) zeigt die tatsächliche Geometrie des Geräts an, indem die Partitionstabelle wie unten gezeigt direkt gelesen wird.
# sfdisk -G /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Die Option -g (Kleinbuchstabe g) zeigt die Vorstellung des Kernels von der Geometrie des Geräts an.
# sfdisk -g /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
In diesem Beispiel stimmen beide Ausgaben wie erwartet überein. Wenn dies nicht übereinstimmt, liegt ein Problem vor.
10. Alle Festplattenpartitionstypen anzeigen
Um alle unterstützten Partitionstypen anzuzeigen, die beim Erstellen neuer Partitionen mit sfdisk verwendet werden können, verwenden Sie die Option -T. T steht für Typ (d.h. Partitionstyp).
Dadurch werden die ID des Partitionstyps und der beschreibende Name angezeigt. Beim Erstellen der Partition geben Sie die ID des Partitionstyps an. Verwenden Sie zum Beispiel 82 als Typ für die Swap-Partition.
# sfdisk -T Id Name 0 Empty 1 FAT12 2 XENIX root 3 XENIX usr 4 FAT16 <32M 5 Extended 6 FAT16 .. .. 82 Linux swap / Solaris 83 Linux 84 OS/2 hidden C: drive 85 Linux extended 86 NTFS volume set 87 NTFS volume set 88 Linux plaintext 8e Linux LVM .. ..
In Bezug auf Swap Space:2 Möglichkeiten zum Hinzufügen von Swap Space mit dd, mkswap und swapon
11. Bearbeiten Sie nur eine einzelne Festplattenpartition
Sie können die Option -N verwenden, um eine bestimmte Festplattenpartition zu manipulieren. -N steht für Nummer (d. h. Partitionsnummer).
Sie können dies verwenden, um eine neue Partition auf einer vorhandenen Festplatte zu erstellen, die bereits andere Partitionen hat.
Im folgenden Beispiel haben wir im sdf-Gerät bereits eine Partition. Aber wir wollen eine zweite Partition erstellen.
# sfdisk /dev/sdf -N2 Checking that no-one is using this disk right now ... OK Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Old situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 0 - 0 0 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty Input in the following format; absent fields get a default value. <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s> Usually you only need to specify <start> and <size> (and perhaps <type>). /dev/sdf2 :512 1024 Warning: given size (1024) exceeds max allowable size (532) /dev/sdf2 :512 532 /dev/sdf2 512 1043 532 4273290 0 Empty New situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 512 1043 532 4273290 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk. Do you want to write this to disk? [ynq] y Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Oben:
- Wir haben die Option -N2 verwendet, um nur die zweite Partition zu manipulieren.
- Das bedeutet, dass sfdisk Sie nur nach den Partitionsinformationen für sdf2 fragen wird, wie oben gezeigt.
- Dadurch wird die vorhandene sdf1-Partition nicht geändert.
- Außerdem werden Sie dadurch nicht aufgefordert, Informationen zu sdf3 und sdf4 einzugeben
12. Probelaufmodus zur Verifizierung
Bevor Sie wirklich eine neue Partition erstellen oder Informationen in den Partitionstabellen ändern, sollten Sie sich vergewissern, dass die Syntax des Befehls, den Sie haben, in Ordnung ist.
In diesem Fall ist es am besten, die Option -n zu verwenden, die wirklich alle Bewegungen durchläuft, ohne wirklich etwas zu tun.
Die Option -n ist eine Trockenlaufoption, die alles durchläuft, was der Befehl tun soll, aber nichts speichert oder ändert.
Wenn Sie beispielsweise einen Partitionstyp ändern, können Sie die Option -n verwenden, die den Befehl durchläuft, aber nichts wirklich ändert, wie unten gezeigt.
# sfdisk -n --change-id /dev/sdf 1 82 sfdisk: -n flag was given: Nothing changed
Sie können dies auch verwenden, wenn Sie neue Partitionen erstellen, wie unten gezeigt. Dies wird den Befehl durchlaufen und alles in der Ausgabe anzeigen, aber ohne wirklich neue Partitionen zu erstellen.
sfdisk -n /dev/sdf < sda.out
13. Markiere eine bestimmte Partition als bootfähig
Verwenden Sie die Option -A, um eine bestimmte Partition als Startpartition zu markieren. -A steht für aktivieren.
Das folgende Beispiel aktiviert die zweite Partition (sdf2) als aktive Partition (d. h. als Boot markieren). Bitte beachten Sie, dass alle anderen Partitionen auf diesem Gerät (sdf), die bereits zum Booten markiert sind, jetzt nicht mehr markiert sind.
# sfdisk -A2 /dev/sdf Done
Wie Sie der folgenden Ausgabe entnehmen können, wird nur sdf2 aktiviert. Das „*“ in der 2. Spalte (d. h. Boot) zeigt an, dass dies als Boot-Partition markiert ist.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 * 512 1043 532 4273290 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
14. Partitionstyp ändern
Sie können den Partitionstyp einer vorhandenen Partition ändern.
Verwenden Sie zunächst die Option –print-id, um den Partitionstyp einer bestimmten Partition anzuzeigen. Der folgende Befehl zeigt den Partitionstyp von sdf1 an. Hier zeigt 83 in der Ausgabe an, dass sdf1 der Linux-Partitionstyp ist.
# sfdisk --print-id /dev/sdf 1 83
Die folgende Ausgabe 0 zeigt an, dass die sdf2-Partition derzeit leer ist.
# sfdisk --print-id /dev/sdf 2 0
Verwenden Sie nun die Option –change-id wie unten gezeigt, um den Partitionstyp eines Partitionsgeräts zu ändern.
In diesem Beispiel ändern wir den Partitionstyp der sdf2-Partition in 83 (Linux-Partition)
# sfdisk --change-id /dev/sdf 2 83 Done
Wie Sie der folgenden Ausgabe entnehmen können, ist sdf2 jetzt auf den Linux-Partitionstyp eingestellt (d. h. schauen Sie sich die letzte Spalte „System“ an)
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 * 512 1043 532 4273290 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
15. Neue Partitionen aus Shell-Skript erstellen (nicht interaktive Methode)
Einer der großen Vorteile von sfdisk ist, dass Sie Partitionen on-the-fly von der Befehlszeile aus ohne jegliche Interaktion von sfdisk erstellen können.
Dies ist sehr hilfreich, wenn Sie die Partitionserstellung von einem Shell-Skript aus automatisieren möchten.
Wie Sie der folgenden Ausgabe entnehmen können, ist das sdf-Gerät derzeit leer. Dies hat keine Partitionen.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0 - 0 0 0 Empty /dev/sdf2 0 - 0 0 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
Führen Sie nun den folgenden Befehl aus, der automatisch drei Partitionen (sdf1, sdf2, sdf3) mit den unten angegebenen Werten erstellt.
# sfdisk /dev/sdf <<EOF 0,512 ,512 ; ; EOF
Oben:
- Es sollten 4 Zeilen in der obigen Eingabe für alle 4 primären Partitionen vorhanden sein.
- Die erste Zeile zeigt an, dass es vom 1. Zylinder bis 512 beginnen sollte, um die 1. Partition zu erstellen (d. h. sdf1)
- Die zweite Zeile gibt an, dass es mit dem letzten verfügbaren Zylinder als erstem Zylinder beginnen und von dort aus +512 Zylinder verwenden sollte, um die zweite Partition zu erstellen (d. h. sdf2)
- Die dritte Zeile hat ein Semikolon, was anzeigt, dass die Standardwerte verwendet werden und der Benutzer nichts für die dritte Partition auffordert. In diesem Fall werden alle verbleibenden Zylinder auf der Festplatte verwendet und eine dritte Partition (z. B. sdf3) erstellt
- Die vierte Zeile hat ein Semikolon, was anzeigt, dass die Standardwerte verwendet werden und der Benutzer nichts für die vierte Partition auffordert. Da in diesem Fall kein Platz mehr vorhanden ist, wird nichts für die 4. Partition (z. B. sdf4) erstellt
Das Folgende ist die Ausgabe des obigen sfdisk-Befehls. Bitte beachten Sie, dass dies keine Eingaben des Benutzers erfordert.
Checking that no-one is using this disk right now ... OK Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Old situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0 - 0 0 0 Empty /dev/sdf2 0 - 0 0 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty New situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 512 1023 512 4112640 83 Linux /dev/sdf3 1024 1043 20 160650 83 Linux /dev/sdf4 0 - 0 0 0 Empty Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk. Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Überprüfen Sie, ob die drei Partitionen automatisch erstellt wurden, indem Sie die angegebenen Werte verwenden.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 512 1023 512 4112640 83 Linux /dev/sdf3 1024 1043 20 160650 83 Linux /dev/sdf4 0 - 0 0 0 Empty