Gibt es eine Möglichkeit, eine Partition mithilfe eines Bash-Skripts zu erstellen und zu formatieren?
Ich denke, es kann mit fdisk gemacht werden, aber ich weiß nicht, wie man Befehle aus dem Bash-Skript in die fdisk-Shell einspeist und dann die fdisk-Shell verlässt.
Ich möchte eine Partition erstellen und sie dann in bash in ntfs formatieren.
bash
partitioning
ntfs
fdisk
GlassGhost
quelle
quelle
sfdisk
ist automatisierungsfreundlicher alsfdisk
sfdisk
sfdisk
ist eine gescriptete Version vonfdisk
Es ist Teil von
util-linux
, genau wiefdisk
, daher sollte die Verfügbarkeit gleich sein.Eine Partitionstabelle mit einer einzelnen Partition, die die gesamte Festplatte belegt, kann erstellt werden mit:
und komplexere Partitionstabellen werden unten erläutert.
Um ein Beispielskript zu generieren, rufen Sie das Setup einer Ihrer Festplatten ab:
Beispielausgabe auf meinem Lenovo T430 Windows 7 / Ubuntu Dual Boot:
Sobald Sie das Skript in einer Datei gespeichert haben, können Sie es anwenden
sdX
mit:Bei der
sfdisk
Eingabe können Sie einfach die Gerätenamen weglassen und Zeilen vom Typ verwenden:Sie werden nur ignoriert, wenn vorhanden, und der Gerätename wird aus dem Befehlszeilenargument übernommen.
Einige Erklärungen:
label
: Typ der Partitionstabelle.dos
(MBR) ist das alte und weit verbreitete,gpt
das neue, glänzende Ding.unit
: nursector
wird unterstützt. Ein Sektor entspricht normalerweise 512 Bytes. Suchen mitcat /sys/block/sda/queue/hw_sector_size
Siehe auch: https://unix.stackexchange.com/questions/2668/finding-the-sector-size-of-a-partitiondevice
: informativ denke ich nurTrennlinien:
start
: Versatz innerhalb der Festplatte, an der die Partition beginnt.start
hat sehr gute Standardeinstellungen und kann oft weggelassen werden:start
steht 2048, dh 1 MB (2048 + 512). Dies ist eine vernünftige Standardeinstellung für die Plattenkompatibilitätstart
Standardeinstellung ist die erste nicht zugewiesene Positionsize
:man sfdisk
Sagt:The default value of size indicates "as much as possible"
. So füllen Sie die Festplatte mit einer einzelnen Partition:/dev/sda : start=2048, type=83
type
: magisches Byte, das im Bootsektor für jeden Partitionseintrag gespeichert ist . Mögliche Werte: https://en.wikipedia.org/wiki/Partition_type In diesem Beispiel beobachten wir:7
(sda1
,2
und3
): Dateisysteme, die Windows unterstützt. Vorinstallierte Windows- und Lenovo-Wiederherstellungspartitionen.sudo blkid
Etiketten helfen, sie zu identifizieren.5
(sda4
): Erweiterte primäre Partition, die andere logische Partitionen enthält (da wir nur 4 primäre Partitionen mit MBR haben können)83
(sda5
,7
Und8
): Partitionen , die Linux unterstützt. Für mich einhome
und zwei Roots mit unterschiedlichen Ubuntu-Versionen82
(sd6
): tauschenfdisk
Sie könnensfdisk
Skripte auch mit demI
Befehl lesen , der sie während einer interaktivenfdisk
Sitzung als "Quelle" verwendet. Auf diese Weise können Sie weitere Anpassungen vornehmen, bevor Sie die Partition schreiben.Getestet unter Ubuntu 16.04,
sfdisk
2.27.1.Formatieren und füllen Sie die Partitionen einer Image-Datei ohne
sudo
Dies ist eine gute Möglichkeit, die Verwendung zu erlernen,
sfdisk
ohne die Festplatten in die Luft zu jagen: https://stackoverflow.com/questions/10949169/how-to-create-a-multi-partition-sd-disk-image-without-root- Privilegien / 52850819 # 52850819quelle
fdisk
liest von stdin, so dass Sie nur die entsprechenden Befehle eingeben müssen. Der folgende Befehl löscht beispielsweise die Partitionstabelle (falls vorhanden) und erstellt eine neue, die eine einzelne Partition hat, die die ist. gesamte Festplatte:Ich empfehle Ihnen, die gewünschte Aufgabe zu erledigen und aufzuzeichnen, was Sie eingeben, damit Sie es reproduzieren können.
quelle
printf
anstelleecho
der Gewohnheit vorschlagen , etwas zu verwenden, das sich systemübergreifend konsistent verhält.Sie können es mit nur ein paar Befehlen tun, verwenden Sie intros \ n anstelle von mehreren Echos.
quelle
\n
nach dem ein weiterer benötigtw
?echo
die Zeile automatisch mit einem Zeilenumbruch beendet wird (sofern nicht die-n
Option verwendet wird)Sie können ein Skript erstellen
fdisk
.Das schafft eine 200 MB Partition weiter
/dev/sdc
quelle
Piping-Befehle an fdisk funktionieren gut, wie von anderen erklärt, sind aber etwas eleganter und lesbarer:
Das Weiterleiten aus einer (temporären) Datei funktioniert auch:
quelle
Erstellen Sie einen neuen Disklabel-Typ "gpt":
sudo /sbin/parted /dev/xvdf mklabel gpt --script
Partitionieren Sie die Festplatte:
sudo /sbin/parted /dev/xvdf mkpart primary 0% 100% --script
quelle
quelle
Das Skript verwendet fdisk , um Partitionen basierend auf den Antworten anderer Personen zu erstellen.
Ändern Sie im Skript Folgendes:
NUM_PARTITIONS = 5
PARTITION_SIZE = "+ 10G"
Die Beispielverwendung ist nach dem Skript angegeben.
lauf mit:
sudo sh mk_partition.sh / dev / sdxxx
quelle
Sie können dieses Skript verwenden. Stellen Sie einfach sicher, dass Sie Ihre eigenen Partitionen
hdd
definieren, in denen sie definiert sind. Es gibt 2 Leerzeichen zwischen1
undw
; Sie müssen vorhanden sein, um Standardwerte zu übernehmen.quelle