ターミナルからストレージドライブをフォーマットする方法を知りたい。答えで提供する有用なものは、多くの場合、将来の使用を推定するために使用できるコマンドおよび基本知識のオプションとして使用されます。具体的には、NTFS、FAT32、EXT4などのさまざまなファイルシステムでフォーマットする方法を知りたいです。端末を介してドライブをパーティション分割する方法に関する情報も必要です。
端末から-大容量の外付けハードドライブ(EHDD)をNTFSにフォーマットしようとしています。
私はこれと他のGUIプログラムのためにgpartedを使用できることを知っていますが、今でもターミナルからそれを行う方法を望んでいます。
いくつかのオプションが利用可能です:
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パーティションテーブル と呼ばれる)が必要な場合。次に、たとえば、3GBから開始する(つまり、最初の3Gを空のままにする)ext4パーティションを作成し、サイズを2GB(つまり、5GBで終了)にします。 parted
は、mkpartfs
の場所をMBで想定していますが、サフィックスを指定できます。
parted /tmp/part mkpart primary ext4 3G 5G
そしてもう1つ、1GBのNTFSパーティション:
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
GPartedは着実に binary prefixes を使用するのに対し、SIプレフィックスを使用することに注意してください(間抜けな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".
実際、partedはパーティションを操作するために使用する必要があることを教えてくれます。filesystemsではなく、次のことをもたらします。
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
はそのようなファイルのパーティションを探しに行くことができません。実際、ブロックデバイスを想定しているため、mkfs
に新しいファイル/tmp/file
を使用する場合は、強制的に使用する必要があります。 /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: [email protected]
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
を実行します。 オンラインユーザーズマニュアル をチェックアウトすることもできます。mkfs
プログラムを直接呼び出すため、パーティションをNTFSにフォーマットできます(mkntfs
、この場合-mkfs.ntfs
はmkntfs
への単なるリンクです)。また、いくつかのパラメーターも設定します。実際、ほとんどの操作では、GPartedメッセージの詳細を調べて、実行されたコマンドを確認できます。parted
またはfdisk
の代わりにそれらを使用する必要があります(使用するパーティションを作成する最初のステップを除いて)。parted
の使用に関する注意:parted
プログラムの構文は次のとおりです。
parted [options] [device [command [options...]...]]
コマンドなしでparted
を実行すると、次のようになります。
parted /tmp/parted
上記のコマンドを実行できる単純なシェルが表示されます。ただし、これらのコマンドはparted
プログラムを使用して直接実行することもできます。したがって、これら3つは同等です。
# 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
(これはハイフンと "s"の間の "1")です。これは、指定した開始から残りのディスクまでパーティションを拡張したい場合に便利です。具体的には、実行中
parted /dev/sda -- mkpart primary ext4 3G -1s
3Gで始まり/dev/sda
ディスクの最後のセクターで終わる/dev/sda
のパーティションを作成します(つまり、3Gからディスクの残りの部分にまたがります)。 --
が無効なオプションとして解釈されないようにするには、1s
が必要であることに注意してください。
まず、fdiskユーティリティを使用してハードドライブを実際にパーティション分割する方法を説明します。
Linuxでは、4つのプライマリパーティションのみが許可されます。プライマリパーティションの1つを細分割することで、はるかに多くの論理パーティションを作成できます。
プライマリパーティションの1つだけを分割できます。
fdiskは、コマンドプロンプトでルートfdiskデバイスとして入力することにより開始されます。
デバイスは/ dev/sdaまたは/ dev/sdbのようなものです
必要な基本的なfdiskコマンドは次のとおりです。
p print the partition table
n create a new partition
d delete a partition
q quit without saving changes
w write the new partition table and exit
パーティションテーブルに加えた変更は、write(w)コマンドを発行するまで有効になりません。
サンプルパーティションテーブルは次のとおりです。
Disk /dev/sdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 184 370912+ 83 Linux
/dev/sdb2 185 368 370944 83 Linux
/dev/sdb3 369 552 370944 83 Linux
/dev/sdb4 553 621 139104 82 Linux swap
例:
シェルプロンプトからfdiskを起動します。
Sudo su
fdisk /dev/sdb
これは、SATAコントローラーで2番目のドライブを使用していることを示しています。
Command (m for help): p
Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
That makes for 384Mb per partition.
Now You get to work.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-621, default 1):<RETURN>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +384M
Next, You set up the partition You want to use for swap:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (197-621, default 197):<RETURN>
Using default value 197
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +128M
パーティションテーブルは次のようになります。
Device Boot Start End Blocks Id System
/dev/sdb1 1 196 395104 83 Linux
/dev/sdb2 197 262 133056 83 Linux
最後に、最初のパーティションを起動可能にします:
Command (m for help): a
Partition number (1-4): 1
And You make the second partition of type swap:
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)
Command (m for help): p
最終結果:
Disk /dev/sdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 196 395104+ 83 Linux
/dev/sdb2 197 262 133056 82 Linux swap
最後に、書き込みコマンド(w)を発行して、ディスクにテーブルを書き込みます。
mkfsユーティリティは、Linuxシステムでファイルシステム(ext2、ext3、ext4など)を作成するために使用されます。
ファイルシステムを作成するmkfsにデバイス名を指定する必要があります。
利用可能なファイルシステムビルダーコマンドを表示する
ファイルシステムビルダー(mkfs *コマンド)は通常、/ sbin /、/ sbin/fs、/ sbin/fs.d、/ etc/fs、/ etcなどのディレクトリで検索されます。
見つからない場合、最後にPATH変数で見つかったディレクトリを検索します。
次のリストは、システムで使用可能なmkfs *コマンドを示しています。
Sudo su
cd /sbin
ls mkfs*
mkfs mkfs.bfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev
mkfs.minix mkfs.msdos mkfs.ntfs mkfs.vfat
特定のデバイスでファイルシステムを構築する
Mkfsコマンドを使用してファイルシステムを構築するために必要な引数は、次に示すようにdevice-filenameとfilesystem-typeです。
次の例では、/ dev/sdb1パーティションにext4ファイルシステムを作成します。
Sudo su
mkfs -t ext4 /dev/sdb1
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1120112 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Mkfsコマンドのデフォルトのファイルシステムタイプはext2であることに注意してください。
「-t」オプションを指定しない場合、ext2ファイルシステムが作成されます。
また、前述の方法を使用して、ext2、ext3、またはext4ファイルシステムがあるかどうかを確認できます。
NTFSドライブをフォーマットする
まず、NTFSファイルシステムを作成する機能が必要になるため、ntfsprogsをインストールします。
Sudo su
apt-get install ntfs-3g
次に、パーティションを吹き飛ばし、NTFSとして再作成します。
Sudo su
umount /dev/sdb1
fdisk /dev/sdb
Options to select:
‘d’ to delete the partition
‘n’ to create a new partition
‘p’ for primary
‘1’ for partition number
‘Enter’ for first cylinder (default 1)
‘Enter’ for last cylinder (default of max size)
‘t’ for type
‘L’ to list codes, and enter code for HPFS/NTFS. In my case, it’s ‘7’
‘w’ to write changes to disk, and exit
umount /dev/sdb1
Ubuntuはパーティションを自動的にマウントし直したので、最後の手順でパーティションをマウント解除します。
次に、ファイルシステムを作成する必要があります。解決方法は2つあります:せっかちな方法(クイックフォーマット)、またはより良いがはるかに長い方法(フルフォーマット)です。
クイックフォーマット
これはディスクスペースを割り当てるだけですが、ドライブをゼロにしたり、不良セクタをチェックしたりすることはありません。つまり、数秒かかります。
Sudo su
mkfs.ntfs -f /dev/sdb1
フルフォーマット
データの整合性を非常に心配していて、待つことを気にしない場合は、完全な形式を使用してください。
これは、大きなドライブをゼロにするのに数時間かかる場合があります!
Sudo su
mkfs.ntfs /dev/sdb1