コンテンツにスキップ
このページの情報は古くなっています。/configuration/automount_with_fstab/ から最新の情報をご覧ください。

追加ドライブの自動マウント

このガイドでは、systemd マウントファイルや /etc/ にある fstab ファイルを使って、ブート時に追加のドライブをマウントする基本的な方法を説明します。パーティションや UUID の調べ方、各オプションの意味、さらに詳しく知りたい場合の参考資料についても紹介しています。

  • ルートまたは sudo 権限

(安全&初心者向け) systemd マウントファイルでドライブをマウントする

Section titled “(安全&初心者向け) systemd マウントファイルでドライブをマウントする”

fstab にはないメリットとして、systemd ならマウントファイルに不具合があっても、起動不能になりません。fstab では一歩間違えると、システムが起動しなくなるおそれがあります。

ターミナルで以下のコマンドを実行
lsblk -f
出力例
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
zram0 [SWAP]
nvme0n1
├─nvme0n1p1 vfat FAT32 E04D-9F05
├─nvme0n1p2
├─nvme0n1p3 ntfs 08A24E90A24E81E4 715.4G 50%
├─nvme0n1p4 vfat FAT32 E09C-D4DA 628.1M 39% /boot
├─nvme0n1p5 ext4 1.0 187a9f06-9411-48d9-b941-f03c2e605812 203.6G 47% /
└─nvme0n1p6 ntfs
nvme1n1
└─nvme1n1p1 ext4 4e55896f-3f1f-4bc5-aa8a-fec099689cd9 931.5G 0%

今回の例では、マウントしたいのは ext4 で新しくフォーマットされた 1TB のドライブで、まだなにもデータが入っていない状態であるとします。このとき出力内容から、マウントするパーティションは nvme1n1p1、UUID は 4e55896f-3f1f-4bc5-aa8a-fec099689cd9 であると判断できます。

通常は lsblk -f の出力を見ればマウントするための情報は十分ですが、正しいパーティションかどうか確信が持てない場合は、以下のコマンドを実行してください。

Terminal window
sudo fdisk -l
出力例
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/nvme0n1p1 2048 206847 204800 100M EFI システム
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft 予約領域
/dev/nvme0n1p3 239616 2997384182 2997144567 1.4T Microsoft 基本データ
/dev/nvme0n1p4 2997385216 2999482367 2097152 1G EFI システム
/dev/nvme0n1p5 2999482368 3905454079 905971712 432G Linux root (x86-64)
/dev/nvme0n1p6 3905454080 3907026943 1572864 768M Windows リカバリ環境
/dev/nvme1n1p1 2048 1953523711 1953521664 931.5G Linux ファイルシステム

今回の例ではすでに UUID を把握していますが、fdisk -l を使うとパーティションの正確なサイズ (931.5G) と種類 (Linux ファイルシステム) が表示されるため、より確実に把握することができます。

これにより、マウントしたいパーティションが先ほど確認した、UUID が 08A24E90A24E81E4nvme0n1p3 であることが正確にわかりました。本来はここまでする必要はありませんが、念の為確認してミスを防ぐことができます。

正しいパーティションを特定できたら UUID をコピーしてください。ターミナルでのコピーは通常 Ctrl+Shift+C で行うことができます。

3. systemd マウントファイルを作成する

Section titled “3. systemd マウントファイルを作成する”

このドライブをゲーム目的に使用したいとします。systemd マウントファイルの名前がマウントパスによって決まるため、マウントする場所はホームディレクトリ内がおすすめです。お好みの場所に自由に設定することができますが、今回はわかりやすいよう /home/user を例とします (user を Linux のユーザーネームに置き換えてください)。このドライブはゲーム用なので、ユーザーホームディレクトリ内のゲームフォルダ /home/user/games にマウントしたいとします。

この場合、systemd マウントファイルの名前は home-$USER-games.mount (スラッシュ / をハイフン - に置き換えてください) となります。配置先は /etc/systemd/system です。

お好きなテキストエディタを使用してください。ここでは micro を例として使用します。

Terminal window
micro /etc/systemd/system/home-$USER-games.mount

以下のテンプレートを貼り付けてください。

[Unit]
Description=
[Mount]
What=
Where=
Type=
Options=
[Install]
WantedBy=multi-user.target

以下はそれぞれの項目の説明です。

説明を自由に書いて、わかりやすくしておくことができます。


今回の例にしたがって記入すると、マウントファイルは以下の通りです。

[Unit]
Description=ゲーム用ドライブ (/home/user/games)
[Mount]
What=UUID=4e55896f-3f1f-4bc5-aa8a-fec099689cd9
Where=/home/user/games
Type=ext4
Options=defaults,exec,rw,noatime
[Install]
WantedBy=multi-user.target

エントリを作成したドライブを今すぐマウントするには、以下のコマンドを実行してください。

Terminal window
sudo systemctl daemon-reload
sudo systemctl enable --now home-$USER-games.mount

これで、マウントする場所としてえらんだフォルダにマウントされているはずです。systemctl status home-$USER-games.mount でマウントの状態を確認することができます。

Terminal window
home-user-games.mount - ゲーム用ドライブ (/home/user/games)
Loaded: loaded (/proc/self/mountinfo; enabled; preset: disabled)
Active: active (mounted) since Sat 2026-05-02 13:02:31 CDT; 23h ago
Invocation: e52ef8fe3d754c64a3825bc1ee89e7da
Where: /home/user/games
What: /dev/nvme1n1p1
Tasks: 0 (limit: 74118)
Memory: 316K (peak: 3.9M)
CPU: 5ms
CGroup: /system.slice/home-user-games.mount
May 02 13:02:31 cachyos systemd[1]: Mounting ゲーム用ドライブ (/home/user/games)...
May 02 13:02:31 cachyos systemd[1]: Mounted ゲーム用ドライブ (/home/user/games).
  • パーティションの UUID を確認
Terminal window
lsblk -f
  • マウントファイルを作成
Terminal window
micro /etc/systemd/system/mnt-foo.mount

mnt-foo の部分にマウントする場所の完全パスを、/- に置き換えて記入してください。

  • マウントファイルを書く
Terminal window
[Unit]
Description=ドライブ
[Mount]
What=UUID=<パーティション UUID>
Where=/mnt/foo
Type=somefs
Options=defaults
[Install]
WantedBy=multi-user.target

<パーティション UUID>, /mnt/foo, somefs をそれぞれ UUID、ディレクトリ名、ファイルシステム (例: ext4) に置き換えてください。NAS には _netdev、重要でないドライブには nofail など、必要に応じてオプションを追加してください。

  • デーモンをリロード
Terminal window
sudo systemctl daemon-reload
  • ドライブをマウント&起動時に自動でマウントするように設定
Terminal window
sudo systemctl enable --now mnt-foo.mount

(上級者向け) /etc/fstab にエントリを追加する

Section titled “(上級者向け) /etc/fstab にエントリを追加する”
ターミナルで以下のコマンドを実行
lsblk -f
出力例
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
zram0 [SWAP]
nvme0n1
├─nvme0n1p1 vfat FAT32 E04D-9F05
├─nvme0n1p2
├─nvme0n1p3 ntfs 08A24E90A24E81E4 715.4G 50%
├─nvme0n1p4 vfat FAT32 E09C-D4DA 628.1M 39% /boot
├─nvme0n1p5 ext4 1.0 187a9f06-9411-48d9-b941-f03c2e605812 203.6G 47% /
└─nvme0n1p6 ntfs

今回の例では、マウントしたいのは Windows パーティション (ntfs 形式)で、空き容量がおよそ半分ある状態だとします。このとき出力内容から、マウントするパーティションは nvme0n1p3、UUID は 08A24E90A24E81E4、ファイルシステムは ntfs であると判断できます。

通常は lsblk -f の出力を見れば /etc/fstab にマウントするための情報は十分ですが、正しいパーティションかどうか確信が持てない場合は、以下のコマンドを実行してください。

Terminal window
sudo fdisk -l
出力例
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/nvme0n1p1 2048 206847 204800 100M EFI システム
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft 予約領域
/dev/nvme0n1p3 239616 2997384182 2997144567 1.4T Microsoft 基本データ
/dev/nvme0n1p4 2997385216 2999482367 2097152 1G EFI システム
/dev/nvme0n1p5 2999482368 3905454079 905971712 432G Linux root (x86-64)
/dev/nvme0n1p6 3905454080 3907026943 1572864 768M Windows リカバリ環境

今回の例ではすでに UUID を把握していますが、fdisk -l を使うとパーティションの正確なサイズ (1.4T) と種類 (Microsoft 基本データ) が表示されるため、より確実に把握することができます。

これにより、マウントしたいパーティションが先ほど確認した、UUID が 08A24E90A24E81E4nvme0n1p3 であることが正確にわかりました。本来はここまでする必要はありませんが、念の為確認してミスを防ぐことができます。

正しいパーティションを特定できたら UUID をコピーしてください。ターミナルでのコピーは通常 Ctrl+Shift+C で行うことができます。

3. /etc/fstab にエントリを追加する

Section titled “3. /etc/fstab にエントリを追加する”

UUID を取得できたので、fstab ファイルを開きましょう。

この例では nano を使いますが、お好みのテキストエディターを使ってもかまいません。fstab ファイルを編集するには、ルートとして開く必要があります。

Terminal window
sudo nano /etc/fstab

矢印キーでファイルの末尾に移動し、空行に新しいエントリを追加してください。

Terminal window
UUID=08A24E90A24E81E4 /media/windows ntfs3 defaults,nofail,uid=1000,gid=1000,rw,user,exec,umask=000 0 0

各項目の説明は以下のとおりです。

  • UUID=08A24E90A24E81E4 はマウントしたいファイルシステムを UUID で指定しています。ファイルシステムを識別する方法はほかにもありますが、UUID が最も安全です。その他の方法はこちらをご覧ください。

  • /media/windows はドライブのマウントポイントです。Linux ファイルシステム階層規格では /media/ がリムーバブルドライブのマウント先として適切とされています。windows はマウント先のディレクトリ名です。マウントしたいドライブごとに専用のディレクトリが必要です。

  • ntfs3 は使用するファイルシステムの種類です。この例では明示的に ntfs3 カーネルドライバを使用しています。ほかには ext4, xfs などがあります。auto に置き換えると mount コマンドが自動で判断するようになります。

  • defaults,nofail,uid=1000,gid=1000,rw,user,exec,umask=000 はマウントオプションです。

    • defaults: rw, suid, dev, exec, auto, nouser, async を含む標準的なオプションセットです。

    • nofail: このマウントが失敗してもブートを続行します。

    • uid=1000gid=1000: マウントされたファイルのユーザーとグループの所有権を ID 1000 に設定します。

    • rw: ファイルシステムを読み書き可能としてマウントします。

    • user: ルート以外のユーザーがファイルシステムをマウントできるようにします。

    • exec: マウントされたファイルシステム上のバイナリの実行を許可します。

    • umask=000: 全ユーザーに読み取り、書き込み、実行権限を付与するファイルパーミッションマスクを設定します。

    • 最初の 0: dump は現代のシステムでは通常廃止されています。0 のままにしても問題ありません。詳細はこちらをご覧ください。

    • 2番目の 0: ブート時のファイルシステムチェックの順序を設定します。ルートパーティションの場合は 1 ですが、btrfs の場合は 0 にしてください。fstab 内のそのほかのファイルシステムは 0 (無効) または 2 に設定してください。詳細はこちらをご覧ください。

各オプションの詳細は fstab のマニュアルページmount のマニュアルページをご覧ください。

ファイルシステムの種類以降のオプションはすべて、デフォルト値から変更しない場合は省略できます。つまり、

UUID=<パーティション UUID> /media/foo somefs

UUID=<パーティション UUID> /media/foo somefs defaults 0 0

の2つは同じ意味を表します。somefs の後に何も指定しない場合、自動的に somefs defaults 0 0 として扱われます。

エントリを作成したドライブを今すぐマウントするには、以下の2つのコマンドを実行してください。

Terminal window
sudo systemctl daemon-reload
Terminal window
sudo mount -a

ドライブが /media/windows に表示され、再起動後も自動的にマウントされるようになります。

Terminal window
ls /media/windows
# '$Recycle.Bin' Linux SteamLibrary
# AMD Modding swapfile.sys
# Apps pagefile.sys 'System Volume Information'
# bootTel.dat PerfLogs Users
# Development ProgramData WiiU
# 'Documents and Settings' 'Program Files' Windows
# DumpStack.log.tmp 'Program Files (x86)' XboxGames
# FanControl Recovery xiv_modding
# Games RetroArch-Win64
# Intel 'Ship of Harkinian'

ホームディレクトリに新しくマウントしたドライブへのリンクを作成したい場合は、以下を実行してください。

Terminal window
ln -s /media/windows ~/Windows

以下のコマンドで作成できたか確認できます。

Terminal window
ls ~/Windows
# '$Recycle.Bin' Linux SteamLibrary
# AMD Modding swapfile.sys
# Apps pagefile.sys 'System Volume Information'
# bootTel.dat PerfLogs Users
# Development ProgramData WiiU
#'Documents and Settings' 'Program Files' Windows
# DumpStack.log.tmp 'Program Files (x86)' XboxGames
# FanControl Recovery xiv_modding
# Games RetroArch-Win64
# Intel 'Ship of Harkinian'
  • パーティションの UUID の確認
Terminal window
lsblk -f
  • /etc/fstab を開く
Terminal window
sudo nano /etc/fstab
  • ファイルの末尾にエントリを追加する
Terminal window
UUID=<パーティション UUID> /media/foo somefs defaults 0 0

<パーティション UUID>, foo, somefs をそれぞれの UUID、ディレクトリ名、ファイルシステム (例: ext4) に置き換えてください。NAS には _netdev、重要でないドライブには nofail など、必要に応じてオプションを追加してください。

  • デーモンをリロードする
Terminal window
sudo systemctl daemon-reload
  • ドライブをマウントする
Terminal window
sudo mount -a

ドライブがマウントされ、以降のブート時にも自動的にマウントされます。