Dostępnych jest kilka opcji:
fdisk
(starszy, nie obsługuje GPT 4 ).
parted
(brat CLI z GParted).
- Różne
mkfs
programy, jeśli masz już partycje i chcesz sformatować.
fdisk
i parted
są interaktywne oraz mają komendy pomocy, dzięki czemu zawsze możesz szukać pomocy w programie. Oba są również skryptowalne. Te mkfs
polecenia nie są interaktywne.
fdisk
fdisk
oczekuje urządzenia (takiego jak /dev/sda
) jako argumentu. Ma następujące polecenia:
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)
Nie używam fdisk
dużo. Skupię się na:
parted
parted
nie potrzebuje argumentu (próbuje „zgadnąć”), ale zawsze powinieneś określać dysk. Biorąc pod uwagę wybór, parted
należy wybrać program. Ma następujące polecenia:
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
Komendy można zawrzeć w unikalnym prefiksie (np. h
Jest skrótem od help
).
Użyję pliku tymczasowego ( /tmp/part
), który utworzyłem, aby pokazać ci polecenia, więc rozmiary będą nieco małe. Powinieneś zastąpić to urządzeniem, którego potrzebujesz ( /dev/sda
na przykład).
Po pierwsze, jeśli twój dysk nie ma tablicy partycji, musimy ją utworzyć:
parted /tmp/part mklabel gpt
lub mklabel msdos
, jeśli chcesz starej 4 partycji podstawowej (zwanej tabelą partycji MBR lub MSDOS ). Następnie wykonujemy, powiedzmy, partycję ext4 zaczynającą się od 3 GB (tj. Pozostawiając początkową 3G wolną) i o rozmiarze 2 GB (tj. Kończącą się na 5 GB). parted
oczekuje lokalizacji w MB dla mkpartfs
, ale możemy określić przyrostek:
parted /tmp/part mkpart primary ext4 3G 5G
I kolejna, teraz partycja NTFS 1 GB:
parted /tmp/part mkpart primary ntfs 5G 6G
Wynik:
# 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
Zwróć uwagę, w jaki sposób używa prefiksów SI, podczas gdy GParted niezmiennie używa prefiksów binarnych (porzucając głupie i
). Oznaczę partycje:
# 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
Chociaż parted
można dobrze tworzyć partycje systemu plików ntfs
, nie można sformatować istniejącej partycji (!) Do 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".
Rzeczywiście, parted powie ci, że powinieneś używać go do manipulowania partycjami, a nie systemami plików , co prowadzi mnie do:
mkfs
mkfs
, podobnie fsck
, jest zasadniczo nakładką na różne polecenia specyficzne dla systemu plików. W moim systemie na przykład mkfs.bfs
, mkfs.cramfs
, mkfs.ext2
, mkfs.ext3
, mkfs.ext4
, mkfs.ext4dev
, mkfs.fat
, mkfs.minix
, mkfs.msdos
, mkfs.ntfs
, mkfs.vfat
są dostępne.
Teraz, niestety, chociaż parted
działa dobrze na pliku, takim jak ten, którego użyłem powyżej, mkfs
nie mogę iść na polowanie na partycje w takich plikach. W rzeczywistości, to oczekuje blokowania urządzenia, więc jeśli mam zamiar wykorzystać nowy plik /tmp/file
dla mkfs
mam zmusić go zrobić. Użyjesz urządzenia blokowego odpowiadającego partycji, którą chcesz sformatować, np /dev/sda2
. Ogólna składnia dla 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).
Jak widać, -t
flaga pozwala nam przekazywać flagi specyficzne dla systemu plików. Na przykład flagi 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
Stwórzmy partycję NTFS z szybkim formatowaniem ( -Q
), zmuszając ją do działania na pliku nieblokującym urządzenia ( -F
) i ustawiając etykietę ( -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.
Najwyraźniej praca z plikiem nie sprawiała mu przyjemności. :) Nie martw się, powinien automatycznie wykryć większość wartości podczas pracy na rzeczywistym dysku. Nawet ten „plik” działa dobrze jako system plików:
# 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
(Zobacz dziwne uprawnienia?)
Uwagi:
sudo
Nigdzie nie użyłem jeszcze w tej odpowiedzi. Ponieważ działałem na plikach i plikach należących do mnie, nie potrzebowałem sudo
. parted
ostrzeże cię przed tym. W przypadku urządzeń blokowych, które zwykle są zawsze własnością root
, będziesz potrzebować sudo
(lub będziesz musiał użyć powłoki roota za pomocą sudo -i
lub sudo su -
).
parted
jest programem GNU i, podobnie jak wiele programów GNU, ma obszerną dokumentację w info
formacie. Zainstaluj parted-doc
( sudo apt-get install parted-doc
), a następnie uruchom info parted
. Możesz także sprawdzić instrukcję obsługi online .
- GParted jest w stanie sformatować partycję do NTFS, ponieważ
mkfs
bezpośrednio wywołuje odpowiedni program ( mkntfs
w tym przypadku - mkfs.ntfs
to tylko łącze do mkntfs
). Ustawia również szereg parametrów. W rzeczywistości dla większości operacji możesz sprawdzić szczegóły wiadomości GParted, aby zobaczyć, które polecenia zostały uruchomione.
- Nie będę wchodził w zalety Tabeli partycji GPT vs. MBR / MSDOS, ale GPT prawdopodobnie znajdzie się na nowych urządzeniach z UEFI, szczególnie jeśli masz na nich Windows 8. Stan narzędzi do partycjonowania? omawia, jakie narzędzia są dostępne, jeśli masz do czynienia z GPT.
- LVM, ZFS i btrfs to zupełnie inna gra. Wszystkie mają narzędzia towarzyszące i należy ich używać zamiast
parted
lub fdisk
(z wyjątkiem być może pierwszego kroku tworzenia partycji do ich użycia).
Uwaga dotycząca parted
użytkowania:
Składnia parted
programu jest następująca:
parted [options] [device [command [options...]...]]
Po uruchomieniu parted
bez polecenia, na przykład:
parted /tmp/parted
Otrzymasz prostą powłokę, w której możesz uruchomić powyższe polecenia. Jednak te polecenia można również uruchamiać bezpośrednio za pomocą parted
programu. Te trzy są równoważne:
# 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
I
# 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
I
parted /tmp/parted mklabel gpt
Zauważ również, że podczas tworzenia partycji z parted
użytecznym wskaźnikiem końca partycji jest -1s
(jest to „1” między łącznikiem a „s”). Jest to przydatne, jeśli chcesz, aby twoja partycja rozciągała się od określonego początku do reszty dysku. Aby być bardziej szczegółowym, bieganie
parted /dev/sda -- mkpart primary ext4 3G -1s
utworzy partycję, /dev/sda
która zaczyna się od 3G i kończy na ostatnim sektorze /dev/sda
dysku (tzn. rozciąga się od 3G do całej pozostałej części dysku). Należy pamiętać, że --
jest to konieczne, aby 1s
nie być interpretowane jako niepoprawna opcja.
-m
zarezerwowanego miejsca - jest to istotne, ponieważ jest to interpretacja intuicyjna.