初めて使うストレージはUSBメモリであろうと外付けHDDであろうとフォーマットをする必要があります。
これは新品のストレージには基本的にどのようにデータを書き込むかのルールが決まっていないためです。(稀にフォーマット済みのストレージも存在します)
書き込むルールを決めてどのルールを使っているか分かるようにすることがフォーマットです。
また、1つのストレージを用途に応じて複数に分割することが出来ます。分割したものをパーティションと言います。
今回はパーティションを作成し、それをフォーマットして新品のストレージを使えるようにしていきます。
この記事で行うこと
1. パーティションの作成
まず、パーティションを作成します。(パーティションを作らずにフォーマットして使用する事も可能ですが、ストレージ管理の際などに未使用と間違えてパーティションで上書いてしまう等の悲劇を起こしかねないのでパーティションは作る事をオススメします)
パーティションの管理は fdisk
というコマンドで行います。多分FormatDISKの略です。
前回はマウント前のパーティション名を調べるために -l
オプションで使いましたが、今回はパーティションの作成に使います。
fdisk
でパーティション管理を行うときはオプションを使わずに、パーティションを管理したいストレージ名を入力します。
前回の例で言うと、 /dev/sdb
の方です。 /dev/sdb1
ではありません。(そもそも新品のストレージに最初からパーティションが存在することはあまりないので、パーティション名が表示される場合はストレージが本当に合っているかを確認してください)
ディスク /dev/sdb: 14.4 GiB, 15500574720 バイト, 30274560 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x67d6d025
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/sdb1 * 2048 30273535 30271488 14.4G c W95 FAT32 (LBA)
fdisk
を実行すると対話形式でパーティションの管理を行えます。
[root@localhost ~]# fdisk /dev/sdb
fdisk (util-linux 2.32.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
コマンド (m でヘルプ):
m
を入力することでコマンドの一覧が見れますが、基本的に使うコマンドは q
と p
と d
と n
とと w
の3つだけです。
q
はfdiskを終了します。(十中八九Quitの略)fdiskは w
を入力するまでは変更を反映しません。なので、 q
で終了した場合は変更は全て無かった事になります。ミスったと思ったらとりあえず q
で終了して落ち着きましょう。
p
はそのデバイスに存在するパーティションの一覧を確認出来ます。(Partitionsの略?) fdisk -l
を実行したときと同様の形式です。
コマンド (m でヘルプ): p
ディスク /dev/sdb: 14.4 GiB, 15500574720 バイト, 30274560 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x67d6d025
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/sdb1 * 2048 30273535 30271488 14.4G c W95 FAT32 (LBA)
d
はパーティションを削除します。(多分Deleteの略)削除するときの確認など何もなくいきなり削除されますが、前述の通り q
で無かったことに出来るので、ミスった際には q
です。
コマンド (m でヘルプ): d
パーティション 1 を選択
パーティション 1 を削除しました。
パーティションが複数ある場合は選べます。(この場合もキャンセルは出来ないので大人しく削除してから q
で無かったことにしましょう)
コマンド (m でヘルプ): d
パーティション番号 (1,2, 既定値 2): 1
パーティション 1 を削除しました。
n
はパーティションを作成します。色々と聞かれますがひたすらEnterキーを押すとそのストレージの容量一杯のパーティションが出来ます。
パーティションの大きさを決めたい場合は 最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P}
に +10G
といった具合で希望するパーティションの大きさを入力します。( +10G
の場合は10GiBのパーティションを作成します)
コマンド (m でヘルプ): n
パーティションタイプ
p 基本パーティション (0 プライマリ, 0 拡張, 4 空き)
e 拡張領域 (論理パーティションが入ります)
選択 (既定値 p):
既定の回答 p であるものとみなします。
パーティション番号 (1-4, 既定値 1):
最初のセクタ (2048-30274559, 既定値 2048):
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (2048-30274559, 既定値 30274559):
新しいパーティション 1 をタイプ Linux、サイズ 14.4 GiB で作成しました。
w
は加えた変更を反映します。これを入力すると変更が確定して帰って来れなくなりますので本当に大丈夫かしっかりと確認してください。
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。
2. フォーマットの実行
フォーマットを行う際にはファイルシステムを選ぶ必要があります。ここで言うファイルシステムはストレージの利用ルールのような物です。
有名な物で言うとWindowsで使われるNTFS、Linuxで広く使われるext4、CentOSなどのRedHat系列のLinuxで使われるxfs、性能がとても低くて不安定だけどどのOSでも使えるFAT32といった具合です。
ext4のストレージをWindowsで読み込もうとしたり、NTFSのストレージをLinuxで読見込もうとしたりするにはそのためのソフトをインストールする必要があるので、基本的には使うOSに合わせたファイルシステムを選びます。
CentOS8では以下の基準で選ぶと良いと思います。
- 他のLinux(Ubuntuなど)で使う予定がない ⇒ xfs
- 他のLinux(Ubuntuなど)に換装するかも ⇒ ext4
- 容量の小さなUSBメモリで他のOS(Windowsなど)でも使う ⇒ FAT32
もし、容量の大きい(数TBの)外付けHDDをWindowsなどの他のOSでも使いたいという事であれば、どっちかにファイルシステムを読み込むためのソフトウェアをインストールする前提でext4かNTFSにすることとなります。(NTFSにする場合はWindowsでフォーマットしてください)
ファイルシステムを決めたらフォーマットします。
フォーマットする前に再度 fdisk -l
でフォーマットしたいパーティション名を確認します。
ちなみに、引数にストレージの名前を入れれば、特定のストレージだけを表示出来ます。
[root@localhost ~]# fdisk -l /dev/sdb
ディスク /dev/sdb: 14.4 GiB, 15500574720 バイト, 30274560 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0xf41f6f50
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/sdb1 2048 30274559 30272512 14.4G 83 Linux
では、 /dev/sdb1
をフォーマットしてみます。
フォーマットする際のコマンドは mkfs.[ファイルシステム名]
です。ファイルシステム毎にコマンドが存在します。( mkfs
は多分MaKe File Systemの略です)
ファイルシステムがext4の場合は mkfs.ext4
、ファイルシステムがxfsの場合は mkfs.xfs
、ファイルシステムがFAT32の場合は mkfs.vfat
となります。
今回はext4で実施しタイと思います。
コマンドによって実行後の表示が違いますが、基本的には待っていれば終わります。しかし、既にファイルシステムが設定されていた場合などは確認が入ることもあります。
[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 3784064 4k blocks and 946560 inodes
Filesystem UUID: 79f07a31-f025-443d-a9d2-83e8e9a3966c
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
ちなみに、 fdisk -l
で表示されるタイプはファイルシステムとは関係ありません。自動起動など一部の場合にのみ参照されますので、基本的には気にする必要はありません。
もし気になる場合は fdisk
のコマンドで t
と入力することで変更することも出来ます。変更候補は fdisk
で l
を入力することで確認出来ます。
コマンド (m でヘルプ): l
0 空 24 NEC DOS 81 Minix / 古い Li bf Solaris
1 FAT12 27 隠し NTFS WinRE 82 Linux スワップ c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 隠し OS/2 また c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 拡張領域 c7 Syrinx
5 拡張領域 41 PPC PReP Boot 86 NTFS ボリューム da 非 FS データ
6 FAT16 42 SFS 87 NTFS ボリューム db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux プレーン de Dell ユーティリ
8 AIX 4e QNX4.x 第2パー 8e Linux LVM df BootIt
9 AIX 起動可能 4f QNX4.x 第3パー 93 Amoeba e1 DOS access
a OS/2 ブートマネ 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad ハ ea Rufus alignment
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
f W95 拡張領域 (L 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 隠し FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC
12 Compaq 診断 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 隠し FAT16 <32M 61 SpeedStor ab Darwin ブート f4 SpeedStor
16 隠し FAT16 63 GNU HURD または af HFS / HFS+ f2 DOS セカンダリ
17 隠し HPFS/NTFS 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 BSDI スワップ fc VMware VMKCORE
1b 隠し W95 FAT32 70 DiskSecure Mult bb 隠し Boot Wizar fd Linux raid 自動
1c 隠し W95 FAT32 75 PC/IX bc Acronis FAT32 L fe LANstep
1e 隠し W95 FAT16 80 古い Minix be Solaris ブート ff BBT
コマンド (m でヘルプ): t
パーティション 1 を選択
16 進数コード (L で利用可能なコードを一覧表示します): 83
パーティションのタイプを 'Linux' から 'Linux' に変更しました。
まとめ
今回はストレージのフォーマットの方法について説明しました。
新しくストレージを増設する際などにはこのように、フォーマットしてから使う必要がありますので、注意してください。