Existem algumas opções disponíveis:
-
fdisk
(mais antigo, não suporta GPT 4 ). -
parted
(o CLI irmão do GParted). - Os vários programas
mkfs
, se você já tiver partições e deseja formatar.
fdisk
e parted
são interativos e têm comandos de ajuda, para que você sempre possa procurar ajuda no programa. Ambos também são roteirizáveis. Os comandos mkfs
não são interativos.
fdisk
fdisk
espera um dispositivo (como /dev/sda
) como um argumento. Tem os seguintes comandos:
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)
Eu não uso muito fdisk
. Vou focar apenas em:
parted
parted
não precisa de um argumento (tenta "adivinhar"), mas você deve sempre especificar o disco. Dada a escolha, parted
é o programa que você deve preferir. Tem os seguintes comandos:
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
Os comandos podem ser contratados para um prefixo exclusivo (por exemplo, h
é a abreviação de help
).
Vou usar um arquivo temporário ( /tmp/part
) que criei para mostrar os comandos, para que os tamanhos sejam um pouco pequenos. Você deve substituir isso pelo dispositivo que você precisa ( /dev/sda
, por exemplo).
Primeiro, se o seu disco não tiver uma tabela de partições, devemos criar uma:
parted /tmp/part mklabel gpt
ou mklabel msdos
, se você quiser a coisa da antiga partição 4 primária (chamada tabela de partições MBR ou MSDOS ).
Então, fazemos, digamos, uma partição ext4 começando com 3 GB (ou seja, deixando o 3G inicial livre) e com tamanho de 2 GB (isto é, terminando em 5 GB). parted
espera localizações em MB para mkpartfs
, mas podemos especificar o sufixo:
parted /tmp/part mkpart primary ext4 3G 5G
E outra, agora uma partição NTFS de 1 GB:
parted /tmp/part mkpart primary ntfs 5G 6G
Resultado:
# 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
Observe como ele usa os prefixos do SI, enquanto o GParted usa firmemente os prefixos binários (enquanto descarta o bobo%) código%). Vou rotular as partições:
# 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
Enquanto i
pode criar partições do sistema de arquivos parted
, não é possível formatar uma partição existente (!) para 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".
De fato, o parted dirá a você que você deve usá-lo para manipular partições, não sistemas de arquivos , o que me leva a:
ntfs
mkfs
, como mkfs
, é essencialmente um frontend para vários comandos específicos do sistema de arquivos. No meu sistema, por exemplo, fsck
, mkfs.bfs
, mkfs.cramfs
, mkfs.ext2
, mkfs.ext3
, mkfs.ext4
, mkfs.ext4dev
, mkfs.fat
, mkfs.minix
, mkfs.msdos
, mkfs.ntfs
são disponível.
Agora, infelizmente, enquanto mkfs.vfat
funciona muito bem em um arquivo, como o que usei acima, parted
não pode procurar por partições nesses arquivos. Na verdade, ele espera dispositivos de bloco, por isso, se for usar um novo arquivo mkfs
para /tmp/file
, preciso forçá-lo a fazer isso. Você usará o dispositivo de bloco correspondente à partição que deseja formatar, como mkfs
.
A sintaxe geral para /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).
Como você pode ver, o sinalizador mkfs
nos permite passar sinalizadores específicos do sistema de arquivos. Por exemplo, sinalizadores 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
Então, vamos fazer uma partição NTFS, com formatação rápida ( -t
), forçando-a a operar em um arquivo de dispositivo sem bloco ( -Q
) e definindo um rótulo ( -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.
É evidente que não gostou de trabalhar em um arquivo. :) Não se preocupe, ele deve detectar automaticamente a maioria dos valores ao trabalhar em um disco real. Mesmo este "arquivo" funciona bem como um sistema de arquivos:
# 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
(Veja as permissões estranhas?)
Notas:
- Ainda não usei
-L "hello world"
em nenhuma parte dessa resposta. Como eu estava operando em arquivos e arquivos de minha propriedade, não precisei desudo
.sudo
avisará sobre isso. Para dispositivos de bloco, que geralmente são sempre de propriedade departed
, você precisará deroot
(ou você precisará usar um shell de raiz viasudo
ousudo -i
). -
sudo su -
é um programa GNU e, como muitos programas GNU, possui extensa documentação no formatoparted
. Instaleinfo
(parted-doc
) e, em seguida, executesudo apt-get install parted-doc
. Você também pode fazer o checkout do manual do usuário on-line . - O GParted pode formatar uma partição para NTFS, pois ela chama diretamente o programa
info parted
apropriado (mkfs
, nesse caso -mkntfs
é apenas um link paramkfs.ntfs
). Também define vários parâmetros. Na verdade, para a maioria das operações, você pode examinar os detalhes das mensagens do GParted para ver quais comandos foram executados. - Não vou entrar nos méritos das tabelas de partição GPT vs MBR / MSDOS, mas a GPT provavelmente será encontrada em novos dispositivos com UEFI, especialmente se você tiver o Windows 8 neles. O estado das ferramentas de particionamento? discute quais ferramentas estão disponíveis se você estiver enfrentando o GPT.
- LVM, ZFS e btrfs são um outro jogo. Todos eles têm suas ferramentas de acompanhamento, e você deve usá-los em vez de
mkntfs
ouparted
(exceto, talvez, para uma etapa inicial de criação de partições para uso).
Observação sobre fdisk
usage:
A sintaxe do programa parted
é:
parted [options] [device [command [options...]...]]
Quando você executa parted
sem um comando, como:
parted /tmp/parted
Você será apresentado a um shell simples, onde você pode executar os comandos acima. No entanto, esses comandos também podem ser executados diretamente usando o programa parted
. Então, esses três são equivalentes:
# 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
Note também que, ao criar partições com parted
, um indicador útil do fim das partições é parted
(isto é "1" entre o hífen e o "s"). Isso é útil se você quiser que sua partição se estenda de um início especificado para o restante do disco. Para ser mais específico, executando
parted /dev/sda -- mkpart primary ext4 3G -1s
criará uma partição de -1s
que começa em 3G e termina no último setor do disco /dev/sda
(ou seja, ele se estende de 3G para todo o restante do disco). Observe que o /dev/sda
é necessário, pois --
não deve ser interpretado como uma opção inválida.