Доступно несколько вариантов:
-
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
ожидает места в MB для 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 устойчиво использует бинарные префиксы (при отбрасывании глупых% код%).
Я буду отмечать разделы:
# 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
В то время как i
может создавать разделы файловой системы parted
просто отлично, он не может отформатировать существующий раздел (!) в 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".
В самом деле, parted сообщит вам, что вы должны использовать его для управления разделами, not filesystems , что приводит меня к:
ntfs
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 --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).
Как вы можете видеть, флаг mkfs
позволяет передавать флаги, специфичные для файловой системы. Например, флаги 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: [email protected]
News, support and information: http://tuxera.com
Итак, сделаем раздел NTFS с быстрым форматированием ( -t
), заставив его работать с файлом неблочного устройства ( -Q
) и установив метку ( -F
).
# 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
(см. странные разрешения?)
Примечания:
- Я еще не использовал
-L "hello world"
в этом ответе. Поскольку я работал с файлами и файлами, принадлежащими мне, мне не нужен sudo
. sudo
предупредит вас об этом. Для блочных устройств, которые обычно всегда принадлежат parted
, вам понадобится root
(или вам придется использовать корневую оболочку через sudo
или sudo -i
).
-
sudo su -
- это программа GNU и, как и многие GNU-программы, имеет обширную документацию в формате parted
. Установите info
( parted-doc
), а затем запустите sudo apt-get install parted-doc
. Вы также можете проверить руководство пользователя в Интернете .
- GParted способен форматировать раздел в NTFS, поскольку он вызывает соответствующую программу
info parted
напрямую ( mkfs
, в этом случае - mkntfs
- это просто ссылка на mkfs.ntfs
). Он также устанавливает ряд параметров. Фактически, для большинства операций вы можете просмотреть сведения о сообщениях GParted, чтобы увидеть, какие команды были запущены.
- Я не буду рассматривать достоинства таблиц разделов GPT и MBR / MSDOS, но GPT, скорее всего, будет найден на новых устройствах с UEFI, особенно если у вас есть Windows 8. Состояние инструментов разбиения? обсуждает, какие инструменты доступны, если вы сталкиваетесь с GPT.
- LVM, ZFS и btrfs - это еще одна игра. Все они имеют свои сопутствующие инструменты, и вы должны использовать их вместо
mkntfs
или parted
(за исключением, возможно, для начального этапа создания разделов для их использования).
Примечание по использованию fdisk
:
Синтаксис программы 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
полезным индикатором конца разделов является parted
(это "1" между дефисами и "s"). Это полезно, если вы хотите, чтобы ваш раздел проходил от указанного начала до остальной части диска. Чтобы быть более конкретным, выполните
parted /dev/sda -- mkpart primary ext4 3G -1s
создаст раздел -1s
, который начинается с 3G и заканчивается в последнем секторе диска /dev/sda
(то есть он распространяется от 3G на весь остаток диска). Обратите внимание, что /dev/sda
необходимо, для --
не следует интерпретировать как недопустимый параметр.