「設定 - ストレージのフォーマットとパーティション」の版間の差分
(→Ext4) |
|||
53行目: | 53行目: | ||
<code>dd</code>コマンドでは、<code>if</code>パラメータはデータの送信元を決定して、<code>of</code>はコピー先を示す。<br> | <code>dd</code>コマンドでは、<code>if</code>パラメータはデータの送信元を決定して、<code>of</code>はコピー先を示す。<br> | ||
以下のコマンドは、ストレージのデータを全てすべて消去(ゼロに置き換える)する。<br> | 以下のコマンドは、ストレージのデータを全てすべて消去(ゼロに置き換える)する。<br> | ||
sudo dd if=/dev/zero of=/dev/ | sudo dd if=/dev/zero of=/dev/sdX status=progress | ||
<br><br> | <br><br> | ||
2022年1月10日 (月) 23:53時点における版
概要
Linuxにおいて、新しいストレージを準備することは簡単である。
ここでは、以下の4つのセクションにおいて、ストレージのフォーマット手順を記載する。
- システム上のストレージを識別する。
- ストレージ全体にまたがる単一のパーティションを作成する。
- Ext4等のファイルシステムでパーティションをフォーマットする。
- ストレージを自動マウントおよび手動マウントする。
パーティションソフトウェアのインストール
ここでは、ストレージをパーティション分割するには、partedを使用する。
このソフトウェアは、多くのLinuxディストリビューションにおいて、標準でインストールされている。
もし、インストールされていない場合は、以下のコマンドを実行してインストールする。
# CentOS 7 sudo yum install parted # CentOS 8 sudo dnf install parted # SUSE sudo zypper install partd
ストレージの識別
ストレージをフォーマットする前に、Linux上でストレージを識別する必要がある。
識別する方法は、パーティション分割スキームが無いことを確認することである。
parted
コマンドを使用して、ストレージのパーティションレイアウトを一覧表示すると、
有効なパーティション構成を持たないストレージに対してエラーが発生する。
これを使用して、新しいストレージを識別できる。
sudo parted -l | grep error # 出力 Error: /dev/sdb: unrecognised disk label
また、lsblk
コマンドを使用して、関連付けられたパーティションが無いストレージを探すこともできる。
lsblk # 出力 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 253:0 0 100G 0 disk
└─sda1 253:1 0 100G 0 part /
sdb 8:0 0 50G 0 disk
ストレージに割り当てられた名前(sda、sdb、sdc等)が識別できると、ストレージの削除およびパーティションの分割を行うことができる。
パーティションの削除
パーティションを消去するには、dd
コマンドを実行する。
dd
コマンドでは、if
パラメータはデータの送信元を決定して、of
はコピー先を示す。
以下のコマンドは、ストレージのデータを全てすべて消去(ゼロに置き換える)する。
sudo dd if=/dev/zero of=/dev/sdX status=progress
パーティションの分割
このセクションでは、ストレージ全体にまたがる単一のパーティションを作成する。
パーティション形式(GPT / MBR)の選択
最初に、使用するパーティション形式を指定する必要がある。
特別な事情がない場合は、GPTを使用することを推奨する。
GPT形式を選択する場合は、以下のコマンドを実行する。
sudo parted /dev/sdb mklabel gpt
MBR形式を選択する場合は、以下のコマンドを実行する。
sudo parted /dev/sdb mklabel msdos
パーティションの作成
次に、ストレージ全体にまたがるパーティションを作成する。
sudo parted -a opt /dev/sda mkpart primary ext4 0% 100%
lsblk
コマンドを確認すると、利用可能な新しいパーティションが表示される。
lsblk # 出力 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk └─sda1 8:1 0 100G 0 part / sdb 253:0 0 50G 0 disk └─sdb1 253:1 0 50G 0 part
ファイルシステムの作成
Ext4
Ext4ファイルシステムとしてフォーマットするには、mkfs.ext4
コマンドを実行する。
また、-L
オプションを付加することで、パーティションラベルを追加できる。これは、ストレージを識別するのに役立つ。
sudo mkfs.ext4 -L datapartition /dev/sda1
※注意
ストレージ全体ではなく、パーティションを渡すようにすること。(sdbではなくsdb1と入力する)
Linuxにおいて、ストレージ名はsda、sdb、hda等である。これらのパーティションの末尾には番号が付加されており、sda1等を使用する。
もし、NVMe SSDを使用している場合は、ストレージ名がnvme0n1等と表示される。
また、後でパーティションラベルを変更する場合は、e2label
コマンドを使用する。
sudo e2label /dev/sdb1 <新しいラベル名>
lsblk --fs
コマンドを実行して、パーティションの識別を確認する。
このコマンドにより、パーティションの名前、ラベル、およびUUIDが確認できる。
lsblk --fs
バージョンに適切なフィールドが全て表示されない場合は、以下のコマンドを実行する。
lsblk -o NAME,FSTYPE,LABEL,UUID,PARTUUID,FSAVAIL,FSUSE%,MOUNTPOINT # 出力 NAME FSTYPE LABEL UUID PARTUUID FSAVAIL FSUSE% MOUNTPOINT sda └─sda1 ext4 datapartition F2769EBE769E82D1 4b313333-a7b5-48c1-a957-d77d637e4fda 494.4M 1% sdb └─sdb1 ext4 DOROOT 1000CC2F00CC1E1A 050e1e34-39e6-4072-a03e-ae0bf90ba13a 16.6G 33% /
exFAT
exFATファイルシステムとしてフォーマットするには、mkfs.exfat
コマンドを実行する。
また、-n
オプションを付加することで、パーティションラベルを追加できる。
sudo mkfs.exfat -n LABEL /dev/sdXY 例. sudo mkfs.exfat -n SAMPLE_LABEL /dev/sdb1
※注意
ストレージ全体ではなく、パーティションを渡すようにすること。(例. sdbではなくsdb1と入力する)
Linuxにおいて、ストレージ名はsda、sdb、hda等である。これらのパーティションの末尾には番号が付加されており、sda1等を使用する。
もし、NVMe SSDを使用している場合は、ストレージ名がnvme0n1等と表示される。
また、後でパーティションラベルを変更する場合は、exfatlabel
コマンドを使用する。
sudo exfatlabel <デバイス名> <ラベル名> 例. sudo exfatlabel /dev/sdb1 SAMPLE_LABEL
また、フォーマットが正常に行われたかどうかを確認することもできる。
sudo fsck.exfat <デバイス名> 例. sudo fsck.exfat /dev/sdb1
GNOME Disksを使用してフォーマットする手順を以下に示す。
- メイン画面左から、フォーマットするストレージを選択する。
- メイン画面右にある[ボリューム]項目の歯車アイコンを選択する。
- [その他]のファイルシステムを選択して、[次へ]ボタンを押下する。
- [exFAT]を選択して、[作成]ボタンを押下する。
exFATのフォーマットが開始される。
NTFS
まず、NTFSのフォーマットに必要なパッケージをインストールする。
# CentOS sudo yum install epel-release sudo yum install --enablerepo=epel ntfsprogs # SUSE sudo zypper install ntfsprogs
NTFSとしてフォーマットするには、mkfs -t ntfs
コマンドを使用する。
また、-L
オプションを付加することで、パーティションラベルを追加できる。これは、ストレージを識別するのに役立つ。
mkfs -t ntfs
コマンドの代わりに、mkfs.ntfs
コマンドを使用することもできる。
sudo mkfs -t ntfs -L <ストレージのラベル名> /dev/sdX
クイックフォーマットを実行する場合は、-Q
オプションを付加する。
sudo mkfs -t ntfs -Q -L <ストレージのラベル名> /dev/sdX
フォーマットしたファイルシステムを確認する場合は、以下のコマンドを実行する。
sudo parted -l
特殊なフォーマット : FAT32
Windows 10
フォーマットを行う前に、FAT32ファイルシステムでフォーマットするストレージを接続する。
ストレージに割り当てられている文字を確認する。
Powershellを起動して、以下のコマンドを実行する。
ここでは、FAT32でフォーマットするストレージをFドライブとする。
format /FS:FAT32 F:
次に、[Enter]キーを押下する。
ストレージ上の全てのデータが消去されることを警告するメッセージが表示されるので、[Y]キーを押下する。
[Y]キーを押下すると、フォーマット処理が開始する。
CentOS / SUSE
まず、ストレージをFAT32ファイルシステムでフォーマットするため、以下のパッケージをインストールする。
# CentOS 7 sudo yum install dosfstools # CentOS 8 sudo dnf install dosfstools # SUSE sudo zypper install dosfstools
次に、フォーマットを行うストレージ名を確認する。
ここでは、/dev/sdcとする。
sudo fdisk -l
最後に、以下のコマンドを実行して、フォーマットを行う。
フォーマットを行う前に、ストレージ上にパーティションを作成しておく必要があるので注意すること。
sudo mkdosfs -F 32 -I /dev/sdc1
ファイルシステムのマウント
パーティションの作成が完了すると、ファイルシステムをマウントして使用できるようになる。
Filesystem Hierarchy Standardでは、一時的にマウントされたファイルシステムは/mntディレクトリまたはその直下のサブディレクトリを使用することを推奨している。
このセクションでは、ストレージを/mnt/dataディレクトリ下にマウントする。
sudo mkdir -p /mnt/data
ファイルシステムの一時的なマウント
以下のコマンドを実行して、ファイルシステムを一時的にマウントできる。
sudo mount -o defaults /dev/sda1 /mnt/data
ファイルシステムの自動マウント
Linuxの起動時にファイルシステムを自動的にマウントする場合は、/etc/fstabファイルを変更する。
UUIDまたはPARTUUIDで記述することを推奨する。
sudo vi /etc/fstab # /etc/fstabファイル /dev/sdb1 /mnt/data ext4 defaults 0 2 または UUID=9811-2A4E /mnt/data ext4 defaults 0 2
以前にファイルシステムをマウントしていなかった場合は、以下のコマンドを実行してマウントできる。
sudo mount -a
マウントしたストレージの確認
ファイルシステムのマウント後、ストレージにアクセスできることを確認する必要がある。
df
コマンドを実行して、ストレージが使用可能かどうかを確認する。
df -h -x tmpfs -x devtmpfs # 出力 Filesystem Size Used Avail Use% Mounted on /dev/sda1 100G 10G 90G 10% / /dev/sdb1 50G 0M 50G 0% /mnt/data
/mnt/dataディレクトリ内のlost + foundディレクトリが表示できるはずである。これは通常、Ext2/3/4ファイルシステムのルートを示している。
ls -l /mnt/data # 出力 total 16 drwx------ 2 root root 16384 Jun 6 11:10 lost+found
テストファイルに作成することで、ファイルが読み込みおよび書き込み機能でマウントされていることを確認することができる。
echo "success" | sudo tee /mnt/data/test_file
ファイルを読み紺で、書き込みが正しく実行されたことを確認する。
cat /mnt/data/test_file
マウントしたファイルシステムが正しく機能していることを確認したら、ファイルを削除する。
sudo rm -rf /mnt/data/test_file