Є кілька варіантів:
fdisk
(старший, не підтримує GPT 4 ).
parted
(брат CLI GParted).
- Різні
mkfs
програми, якщо ви вже маєте розділи та бажаєте їх форматувати.
fdisk
і parted
є інтерактивними, і є команди довідки, так що ви завжди можете звернутися за допомогою в рамках програми. І те й інше - сценарій. Ці mkfs
команди не інтерактивні.
fdisk
fdisk
очікує, що пристрій (наприклад, /dev/sda
) в якості аргументу. Він має такі команди:
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)
Я не так fdisk
багато використовую . Я просто зупинюсь на:
parted
parted
не потрібен аргумент (він намагається "здогадатися"), але ви завжди повинні вказувати диск. З огляду на вибір, parted
чи варто віддати перевагу програмі. Він має такі команди:
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
Команди можуть бути скорочені до унікального префікса (наприклад, h
скорочено для help
).
Я буду використовувати тимчасовий файл ( /tmp/part
), який я створив, щоб показати вам команди, тому розміри будуть дещо невеликими. Ви повинні замінити це на потрібний вам пристрій ( /dev/sda
наприклад,).
По-перше, якщо на вашому диску немає таблиці розділів, ми повинні створити його:
parted /tmp/part mklabel gpt
або mklabel msdos
, якщо вам потрібна річ 4-первинного розділу старої школи (називається таблицею розділів MBR або MSDOS ). Тоді ми робимо, скажімо, розділ ext4, починаючи з 3 Гб (тобто залишаючи початковий 3G вільним) і розміром 2 Гб (тобто закінчуючи на 5 ГБ). parted
очікує розташування в МБ для mkpartfs
, але ми можемо вказати суфікс:
parted /tmp/part mkpart primary ext4 3G 5G
І ще один, тепер вже NTFS розділ 1 Гб:
parted /tmp/part mkpart primary ntfs 5G 6G
Результат:
# 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
Зверніть увагу, як він використовує префікси SI, тоді як GParted впевнено використовує бінарні префікси (при цьому скидає дурні i
). Я позначу розділи:
# 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
Хоча parted
можна просто створити розділи файлової системи ntfs
, але він не може відформатувати існуючий розділ (!) До 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".
Дійсно, розірваний скаже вам, що ви повинні використовувати його для маніпулювання розділами, а не файловими системами , що приводить мене до:
mkfs
mkfs
, як fsck
, по суті, є інтерфейсом до різних команд, характерних для файлової системи. У моїй системі, наприклад, mkfs.bfs
, mkfs.cramfs
, mkfs.ext2
, mkfs.ext3
, mkfs.ext4
, mkfs.ext4dev
, mkfs.fat
, mkfs.minix
, mkfs.msdos
, mkfs.ntfs
, mkfs.vfat
доступні.
На жаль, поки parted
файл працює чудово, як і той, який я використав вище, mkfs
не можна шукати розділи в таких файлах. Насправді, він очікує , що блокові пристрої, так що, якщо я буду використовувати новий файл /tmp/file
для mkfs
мене є , щоб змусити його зробити це. Ви будете використовувати блоковий пристрій, відповідний розділу, який ви хочете відформатувати, наприклад /dev/sda2
. Загальний синтаксис для 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).
Як бачите, -t
прапор дозволяє нам передавати прапори, характерні для файлової системи. Наприклад, прапорці 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
Тож давайте зробимо розділ NTFS з швидким форматуванням ( -Q
), змусивши його працювати над файлом пристрою, що не блокується ( -F
), і встановивши ярлик ( -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.
Очевидно, що не сподобалось працювати над файлом. :) Не хвилюйтесь, він повинен автоматично виявляти більшість значень під час роботи на фактичному диску. Навіть цей "файл" добре працює як файлова система:
# 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
(Бачите дивні дозволи?)
Примітки:
- У
sudo
цій відповіді я ще ніде не користувався. Оскільки я працював над файлами та власними файлами, мені це не потрібно sudo
. parted
попередить вас про це. Для блокових пристроїв, якими зазвичай завжди належить root
, вам знадобиться sudo
(або вам доведеться використовувати кореневу оболонку через sudo -i
або sudo su -
).
parted
є програмою GNU, і, як і багато програм GNU, має велику документацію у info
форматі. Встановіть parted-doc
( sudo apt-get install parted-doc
) та запустіть info parted
. Ви також можете ознайомитись з посібником користувача в Інтернеті .
- GParted здатний відформатувати розділ до NTFS, оскільки він викликає відповідну
mkfs
програму безпосередньо ( mkntfs
в даному випадку - mkfs.ntfs
це лише посилання на mkntfs
). Він також встановлює ряд параметрів. Насправді для більшості операцій ви можете вивчити деталі повідомлень GParted, щоб побачити, які команди виконувались.
- Я не буду вступати в достоїнства таблиць розділів GPT проти MBR / MSDOS, але, швидше за все, GPT можна знайти на нових пристроях з UEFI, особливо якщо у вас Windows 8. Стан інструментів перегородки? обговорює, які інструменти доступні, якщо ви стикаєтесь з GPT.
- LVM, ZFS та btrfs - це зовсім інша гра. Всі вони мають свої супровідні інструменти, і ви повинні використовувати їх замість
parted
або fdisk
(крім, можливо, для початкового кроку створення розділів для їх використання).
Примітка про parted
використання:
Синтаксис parted
програми:
parted [options] [device [command [options...]...]]
Коли ви запускаєте parted
без команди, наприклад:
parted /tmp/parted
Вам буде запропоновано просту оболонку, де ви можете запускати вищезазначені команди. Однак ці команди також можна запустити безпосередньо за допомогою parted
програми. Отже, ці три еквівалентні:
# 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
І
# 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
І
parted /tmp/parted mklabel gpt
Зауважте також, що при створенні розділів з parted
, корисним індикатором кінця розділів є -1s
(це "1" між дефісом та "s"). Це корисно, якщо ви хочете, щоб ваш розділ перейшов із заданого запуску на іншу частину диска. Якщо бути більш конкретним, бігайте
parted /dev/sda -- mkpart primary ext4 3G -1s
створить розділ, /dev/sda
який починається з 3G і закінчується в останньому секторі /dev/sda
диска (тобто він охоплює від 3G до всієї залишки диска). Зауважте, що --
необхідне, щоб 1s
не інтерпретуватися як недійсний варіант.
-m
щодо зарезервованого простору - це актуально, оскільки він є інтелектуальним.