Sono disponibili alcune opzioni:
fdisk
(più vecchio, non supporta GPT 4 ).
parted
(il fratello CLI di GParted).
- I vari
mkfs
programmi, se hai già partizioni e desideri formattare.
fdisk
e parted
sono interattivi e hanno comandi di aiuto, così puoi sempre cercare aiuto all'interno del programma. Entrambi sono anche scriptabili. I mkfs
comandi non sono interattivi.
fdisk
fdisk
si aspetta un dispositivo (come /dev/sda
) come argomento. Ha i seguenti comandi:
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the DOS compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Non uso fdisk
molto. Mi concentrerò solo su:
parted
parted
non ha bisogno di un argomento (prova a "indovinare"), ma dovresti sempre specificare il disco. Data la scelta, parted
è il programma che dovresti preferire. Ha i seguenti comandi:
align-check TYPE N check partition N for TYPE(min|opt) alignment
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER
mkpart PART-TYPE [FS-TYPE] START END make a partition
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
resizepart NUMBER END resize partition NUMBER
move NUMBER START END move partition NUMBER
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
resize NUMBER START END resize partition NUMBER and its file system
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright information of GNU Parted
I comandi possono essere assegnati a un prefisso univoco (ad esempio, h
è l'abbreviazione di help
).
Userò un file temporaneo ( /tmp/part
) che ho creato per mostrarti i comandi, quindi le dimensioni saranno piuttosto ridotte. È necessario sostituirlo con il dispositivo necessario ( /dev/sda
ad esempio).
Innanzitutto, se il tuo disco non ha una tabella delle partizioni, dobbiamo crearne una:
parted /tmp/part mklabel gpt
oppure mklabel msdos
, se si desidera la cosa della partizione primaria 4 della vecchia scuola (chiamata tabella delle partizioni MBR o MSDOS ). Quindi creiamo, diciamo, una partizione ext4 che inizia a partire da 3 GB (ovvero, lasciando libero il 3G iniziale) e di dimensioni 2 GB (ovvero, terminando a 5 GB). parted
si aspetta posizioni in MB per mkpartfs
, ma possiamo specificare il suffisso:
parted /tmp/part mkpart primary ext4 3G 5G
E un altro, ora una partizione NTFS da 1 GB:
parted /tmp/part mkpart primary ntfs 5G 6G
Risultato:
# parted /tmp/part print
Model: (file)
Disk /tmp/blah: 10.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 3000MB 5000MB 2000MB primary
2 5000MB 6000MB 1000MB primary msftdata
Nota come usa i prefissi SI, mentre GParted usa fermamente prefissi binari (lasciando cadere lo sciocco i
). Etichetta le partizioni:
# parted /tmp/part name 1 hello
# parted /tmp/part name 2 world
# parted /tmp/part print
Model: (file)
Disk /tmp/blah: 10.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 3000MB 5000MB 2000MB hello
2 5000MB 6000MB 1000MB world msftdata
Mentre parted
può creare partizioni del filesystem ntfs
bene, non può formattare una partizione esistente (!) Su NTFS:
mkfs partition fs-type
Make a filesystem fs-type on partition. fs-type can be one
of "fat16", "fat32", "ext2", "linux-swap", or "reiserfs".
Infatti, parted ti dirà che dovresti usarlo per manipolare le partizioni, non i filesystem , il che mi porta a:
mkfs
mkfs
, come fsck
, è essenzialmente un frontend per vari comandi specifici del filesystem. Sul mio sistema, ad esempio, mkfs.bfs
, mkfs.cramfs
, mkfs.ext2
, mkfs.ext3
, mkfs.ext4
, mkfs.ext4dev
, mkfs.fat
, mkfs.minix
, mkfs.msdos
, mkfs.ntfs
, mkfs.vfat
sono disponibili.
Ora, sfortunatamente, mentre parted
funziona bene su un file, come quello che ho usato sopra, mkfs
non posso andare a caccia di partizioni in tali file. In effetti, prevede dispositivi a blocchi, quindi se ho intenzione di utilizzare un nuovo file /tmp/file
per mkfs
, devo forzarlo. Utilizzerai il dispositivo a blocchi corrispondente alla partizione che desideri formattare, ad esempio /dev/sda2
. La sintassi generale per mkfs
è:
# mkfs --help
Usage: mkfs [options] [-t type fs-options] device [size]
Options:
-t, --type=TYPE file system type, when undefined ext2 is used
fs-options parameters to real file system builder
device path to a device
size number of blocks on the device
-V, --verbose explain what is done
defining -V more than once will cause a dry-run
-V, --version output version information and exit
-V as version must be only option
-h, --help display this help and exit
For more information, see mkfs(8).
Come puoi vedere, il -t
flag ci consente di passare flag specifici del filesystem. Ad esempio, flag NTFS:
# mkfs.ntfs --help
Usage: mkntfs [options] device [number-of-sectors]
Basic options:
-f, --fast Perform a quick format
-Q, --quick Perform a quick format
-L, --label STRING Set the volume label
-C, --enable-compression Enable compression on the volume
-I, --no-indexing Disable indexing on the volume
-n, --no-action Do not write to disk
Advanced options:
-c, --cluster-size BYTES Specify the cluster size for the volume
-s, --sector-size BYTES Specify the sector size for the device
-p, --partition-start SECTOR Specify the partition start sector
-H, --heads NUM Specify the number of heads
-S, --sectors-per-track NUM Specify the number of sectors per track
-z, --mft-zone-multiplier NUM Set the MFT zone multiplier
-T, --zero-time Fake the time to be 00:00 UTC, Jan 1, 1970
-F, --force Force execution despite errors
Output options:
-q, --quiet Quiet execution
-v, --verbose Verbose execution
--debug Very verbose execution
Help options:
-V, --version Display version
-l, --license Display licensing information
-h, --help Display this help
Developers' email address: ntfs-3g-devel@lists.sf.net
News, support and information: http://tuxera.com
Quindi creiamo una partizione NTFS, con formattazione rapida ( -Q
), costringendola a operare su un file non-block-device ( -F
) e impostando un'etichetta ( -L "hello world"
).
# mkfs -t ntfs -F -Q -L "hello world" /tmp/file
/tmp/file is not a block device.
mkntfs forced anyway.
The sector size was not specified for /tmp/file and it could not be obtained automatically. It has been set to 512 bytes.
The partition start sector was not specified for /tmp/file and it could not be obtained automatically. It has been set to 0.
The number of sectors per track was not specified for /tmp/file and it could not be obtained automatically. It has been set to 0.
The number of heads was not specified for /tmp/file and it could not be obtained automatically. It has been set to 0.
Cluster size has been automatically set to 4096 bytes.
To boot from a device, Windows needs the 'partition start sector', the 'sectors per track' and the 'number of heads' to be set.
Windows will not be able to boot from this device.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
Chiaramente non è piaciuto lavorare su un file. :) Non preoccuparti, dovrebbe rilevare automaticamente la maggior parte dei valori quando si lavora su un disco reale. Anche questo "file" funziona bene come filesystem:
# mount -t ntfs-3g /tmp/file /mnt
# touch "/mnt/a file in mnt"
# ls -l /mnt
total 0
-rwxrwxrwx 1 root root 0 Aug 29 06:43 a file in mnt
# umount /mnt
# ls -l /mnt
total 0
(Vedi le strane autorizzazioni?)
Appunti:
- Non ho ancora usato da
sudo
nessuna parte in questa risposta. Dato che stavo operando su file e file di mia proprietà, non ne avevo bisogno sudo
. parted
ti avvertirà di questo. Per i dispositivi a blocchi, che di solito sono sempre di proprietà di root
, dovrai sudo
(o dovrai usare una shell di root tramite sudo -i
o sudo su -
).
parted
è un programma GNU e, come molti programmi GNU, ha una vasta documentazione nel info
formato. Installa parted-doc
( sudo apt-get install parted-doc
) e quindi esegui info parted
. Puoi anche consultare il manuale dell'utente online .
- GParted è in grado di formattare una partizione su NTFS come chiama
mkfs
direttamente il programma appropriato ( mkntfs
, in questo caso - mkfs.ntfs
è solo un collegamento a mkntfs
). Imposta anche un numero di parametri. In effetti, per la maggior parte delle operazioni, puoi esaminare i dettagli dei messaggi GParted per vedere quali comandi sono stati eseguiti.
- Non entrerò nei meriti delle tabelle di partizione GPT vs MBR / MSDOS, ma è probabile che GPT si trovi su nuovi dispositivi con UEFI, specialmente se hai Windows 8 su di essi. Lo stato degli strumenti di partizionamento? discute quali strumenti sono disponibili se stai affrontando GPT.
- LVM, ZFS e btrfs sono un altro gioco. Tutti hanno i loro strumenti di accompagnamento e dovresti usarli al posto di
parted
o fdisk
(tranne forse per un passaggio iniziale di creazione di partizioni per il loro uso).
Nota parted
sull'uso:
La sintassi del parted
programma è:
parted [options] [device [command [options...]...]]
Quando si esegue parted
senza un comando, come:
parted /tmp/parted
Ti verrà presentata una semplice shell, dove puoi eseguire i comandi sopra. Tuttavia, questi comandi possono anche essere eseguiti direttamente utilizzando il parted
programma. Quindi questi tre sono equivalenti:
# parted /tmp/parted
GNU Parted 2.3
Using /tmp/parted
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
E
# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /tmp/parted
Using /tmp/parted
(parted) mklabel gpt
E
parted /tmp/parted mklabel gpt
Si noti inoltre che, quando si creano partizioni con parted
, un utile indicatore della fine delle partizioni è -1s
(questo è "1" tra il trattino e la "s"). Ciò è utile se si desidera che la partizione si estenda da un inizio specificato al resto del disco. Per essere più specifici, in esecuzione
parted /dev/sda -- mkpart primary ext4 3G -1s
creerà una partizione /dev/sda
che inizia a 3G e termina all'ultimo settore del /dev/sda
disco (ovvero si estende da 3G a tutto il resto del disco). Si noti che --
è necessario, per 1s
non essere interpretato come un'opzione non valida.
-m
nello spazio riservato - è rilevante, perché è intuitivo.