ターミナルからストレージ ドライブをフォーマットする方法を知りたいです。回答で提供していただけると役立つのは、コマンドでよく使用されるオプションと、将来の使用を推測するために使用できる基本知識です。具体的には、NTFS、FAT32、EXT4 などのさまざまなファイル システムでフォーマットする方法を知りたいです。ターミナル経由でドライブをパーティション分割する方法に関する情報も必要です。
ターミナルから大容量外付けハードドライブ (EHDD) を NTFS にフォーマットしようとしています。
これには gparted や他の GUI プログラムも使用できることはわかっていますが、ターミナルからそれを実行する方法を知りたいです。
答え1
利用可能なオプションはいくつかあります:
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 から始まり (つまり、最初の 3GB は空きのまま)、サイズが 2GB (つまり、5GB で終了) の ext4 パーティションを作成します。parted
では の場所が MB 単位で指定されますmkpartfs
が、サフィックスを指定できます。
parted /tmp/part mkpart primary ext4 3G 5G
そしてもう 1 つは、1 GB の 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では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はパーティションを操作するためにそれを使うべきだと教えてくれます。ファイルシステムではないそれで、次のようになります。
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: [email protected]
News, support and information: http://tuxera.com
-Q
それでは、クイック フォーマット( )、非ブロック デバイス ファイルでの操作を強制 ( -F
)、ラベルの設定 ( -L "hello world"
)を使用して、NTFS パーティションを作成しましょう。
# 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
GParted は、適切なプログラムを直接呼び出すため (mkntfs
、この場合、 -mkfs.ntfs
は へのリンクにすぎません) 、パーティションを NTFS にフォーマットできますmkntfs
。また、いくつかのパラメータも設定します。実際、ほとんどの操作では、GParted メッセージの詳細を調べて、どのコマンドが実行されたかを確認できます。- GPT と MBR/MSDOS パーティション テーブルのメリットについては詳しく説明しません。ただし、特に Windows 8 がインストールされている UEFI 搭載の新しいデバイスでは、GPT が使用されている可能性が高くなります。パーティショニングツールの状態は?GPT に直面した場合に利用できるツールについて説明します。
- LVM、ZFS、btrfs はまったく別の話です。これらにはそれぞれ付属ツールがあり、
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
/dev/sda
は、3G から始まり、ディスクの最後のセクターで終わる/dev/sda
(つまり、3G からディスクの残り全体に及ぶ)のパーティションを作成します。が無効なオプションとして解釈されない--
ようにするには、 が必要であることに注意してください。1s
答え2
まず、fdisk ユーティリティを使用して実際にハード ドライブをパーティション分割する方法を説明します。
Linux では、プライマリ パーティションは 4 つしか作成できません。プライマリ パーティションの 1 つを細分化することで、論理パーティションの数を大幅に増やすことができます。
プライマリ パーティションのうち 1 つだけを細分化できます。
fdisk は、コマンド プロンプトで root として fdisk device と入力することで起動します。
デバイスは/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
パーティション テーブルに加えた変更は、書き込み (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 コマンドを使用してファイルシステムを構築するには、以下に示すように、デバイス ファイル名とファイルシステム タイプという引数が必要です。
次の例では、/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