パーティションをマウントする
Linuxのパーティションをマウントする方法のメモです。追加でストレージを追加したり、OSと別にデータ用のパーティションを用意した場合などに必要となります。たとえば、データ用のパーティションを作成し、それぞれのディストリビューターからマウントします。
環境:LMDE 4
マウントするパーティションを調べる
自分のマシンにどのようなパーティションがあるのかを、ブロックデバイスの一覧を表示するlsblk
コマンドで確認します。
パーティションを操作するためのデバイスファイルは、/dev
ディレクトリ配下に自動的に作成されます。たとえば、sda1
ならば、/dev/sda1
のように、パーティション名の前に/dev
を付けるとパスになります。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
|--sda1 8:1 0 512M 0 part /boot/efi
|--sda2 8:2 0 24G 0 part
|--sda3 8:3 0 24G 0 part /
`--sda4 8:4 0 190G 0 part
第1フィールドNAME
を見ると、sda
から始まるパーティションが4つあることが分かります。第7フィールドMOUNTPOINT
を見ると、/dev/sda1
が/boot/efi
に、sda3
が/
に、それぞれマウントされていることが分かります。
今回マウントするデータ用のパーティションは、sda4
です。gdisk
等のパーティション作成時に把握していると思います。なお、デバイス名はマシンによって異なります。今回の例だとsda
とありますが、次の例で示すように、別のマシンでは全く違う名前になる場合があります。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk 0 179:0 0 58.2G 0 disk
|--mmcblk0p1 179:1 0 512M 0 part /boot/efi
`--mmcblk0p2 179:2 0 57.8G 0 part /
mmcblk0boot0 179:256 0 4M 1 disk
mmcblk0boot1 179:512 0 4M 1 disk
パーティションをマウントする
パーティションをマウントするためのディレクトリを作成します。場所はどこでもいいですが、特にこだわりがないのであれば、/mnt
配下 にします。今回、ディレクトリ名をdata
と命名しましたが、好みで大丈夫です。
$ mkdir /mnt/data
これでマウントする準備ができたので、mount
コマンドでマウントしてみます。
$ sudo mount /dev/sda4 /mnt/data
lsblk
で確認すると、sda4
が/mnt/data
にマウントされていることが分かります。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
|--sda1 8:1 0 512M 0 part /boot/efi
|--sda2 8:2 0 24G 0 part
|--sda3 8:3 0 24G 0 part /
`--sda4 8:4 0 190G 0 part /mnt/data
ちなみに筆者は、dataパーティションにDownloads
やDocuments
といったXDGユーザーディレクトリと同名のディレクトリを作成しています。そして、これらのシンボリックリンクを$HOME
に設置しています。これなら設定を共有しなくても、複数のOSからXDGユーザーディレトクトリが共有できます。一応、$HOME
の機能をもたせたパーティションを作ることもできますが、OS間で重要な設定を不本意に共有してしまうかもしれないので、避けた方が懸命だと思います。
起動時に自動でマウントさせる
パーティションを毎回マウントするのは大変です。そこで、OSの起動時に自動でマウントさせたいと思います。
Linuxでマウントの情報は、/etc/fstab
に記述します。fstab
については詳しくないので、詳細はArch LinuxのWikiに「fstab
」が立項されていますので、調べてみてください。
fstab
には、コメントアウトされた# /dev/sda4 /mnt/data
以降を記述します。
$ sudo vi /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
proc /proc proc defaults 0 0
# /dev/sda1
UUID=28AC-1951 /boot/efi vfat defaults 0 0
# /dev/sda3
UUID=5753ca61-60d8-47be-ac8b-5f8b7fe555b0 / ext4 rw,errors=remount-ro 0 1
# /dev/sda4 /mnt/data
UUID=53123f03-14d7-4f8b-b37b-e67c107c94ca /mnt/data ext4 rw,relatime,data=ordered 0 2
fstab
は、パーティションのUUID
、マウント先のパス、ファイルシステムの形式、オプション、ダンプ、パスの順で記述します。区切り文字は、スペースかタブで行います。
パーティションのUUID
と、ファイルシステムは、lsblk
に--fs
(-f
)オプションをつけると確認できます。今回のsda4
なら、UUID
が53123f03-14d7-4f8b-b37b-e67c107c94ca
、ファイルシステムがext4
です。そして、マウント先が/mnt/data
です。
$ lsblk --fs
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
|--sda1
vfat 28AC-1951 451M 12% /boot/efi
|--sda2
ext4 arch 9c6a9d88-116b-429c-af70-efa2acb2c558
|--sda3
ext4 mint 5753ca61-60d8-47be-ac8b-5f8b7fe555b0 15.3G 30% /
`--sda4
ext4 data 53123f03-14d7-4f8b-b37b-e67c107c94ca 174.1G 1% /mnt/data
残りの、オプション、ダンプ、パスを見てみます。
# /dev/sda4 /mnt/data
UUID=53123f03-14d7-4f8b-b37b-e67c107c94ca /mnt/data ext4 rw,relatime,data=ordered 0 2
オプションには、3つの設定、rw,relatime,data=ordered
がされています。まず、rw
は、Read Writeの略で読み書き可能な状態でマウントされていることを表します。つぎにrelatime
は、パフォーマンスを向上させるために、変更日時に合わせてinodeアクセス日時を更新するものです。そして、data=ordered
は、metaデータとデータの中身の書き出し順を保証します(ext4
の機能?)。なお、default
に設定している人もみかける。
ダンプには、0
か1
を記述します。dumpユーティリティによって、バックアップを作成する場合は1
に、しない場合は0
に設定します。dumpユーティリティを利用していなかったり、分からない場合は0
に設定すれば大丈夫です。
パスには、2
を設定します。これは、ファイルシステムをチェックする優先度を決めるもので、1
、2
、0
の3種類があります。1
をrootファイルシステムに、2
をその他のファイルシステムに設定します。0
番はファイルシステムをチェックをしません。たとえば、/dev/sda1
は、ブートローダーでファイルシステムをチェックする必要がないので、0
に設定されています。
パーティションにラベルをつける
パーティションの役割を明示的にするために、ラベルをつけることができます。パーティションのフォーマット時に一緒につけてしまうことが多いと思います。
$ mkfs.ext4 /dev/sda3 -L mint
しかし、フォーマット時にラベルをつけても、OSのインストール時に再フォーマットされてしまい、ラベルが消えてしまうことがあります。だからといって、もう一度フォーマットする訳にはいかないので、e2label
コマンドを使ってラベルをつけます。
$ e2label /dev/sda3 mint
更新情報
- 作成日:2020-04-08
- 更新日:2022-05-02