---
title: 追加ドライブの自動マウント
description: /etc/fstab や systemd のマウント機能使って追加のドライブをブート時に自動マウントする方法
---

import { Tabs, TabItem, Steps } from '@astrojs/starlight/components';

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

## 要件

- ルートまたは sudo 権限

:::note[Linux での NTFS について]
NTFS ファイルシステムは、ntfs や ntfs3, ntfs-3g ドライバを使っても Linux では不安定になることがあるため、自己責任で使用してください。安定性とパフォーマンスを重視するなら、ext4, xfs, btrfs などの Linux ネイティブなファイルシステムをおすすめします。
:::

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

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

### 1. パーティション UUID の確認

```sh title="ターミナルで以下のコマンドを実行"
lsblk -f
```

```sh title="出力例"
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` であると判断できます。

### 2. パーティションを特定する

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

```sh
sudo fdisk -l
```

```sh title="出力例"
デバイス        開始位置    終了位置    セクタ      サイズ  タイプ
/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 が `08A24E90A24E81E4` の `nvme0n1p3` であることが正確にわかりました。本来はここまでする必要はありませんが、念の為確認してミスを防ぐことができます。

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

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

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

:::tip
マウントフォルダの名前にスペースやハイフン、CJK (日中韓) 文字やアクセント文字を使用したい場合は、特別な書き方が必要です。たとえばフォルダパスが `/home/user/Aaあア` の場合、作成するマウントファイルの名前を以下のコマンドで生成する必要があります。
```bash
systemd-escape -p --suffix=mount "/home/user/Aaあア"
```
`\` はすべてエスケープする必要があります。この例では最終的にマウントファイルの完全パスは `/etc/systemd/system/home-user-Aa\\xe3\\x81\\x82\\xe3\\x82\\xa2.mount` になります。
:::

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

```sh
micro /etc/systemd/system/home-$USER-games.mount
```
:::note
ホームフォルダ内でマウントする場合、上記の $USER をそのままにしても、自動的にユーザーネームに置き換えられるため問題ありません。
:::

以下のテンプレートを貼り付けてください。
```ini
[Unit]
Description=

[Mount]
What=
Where=
Type=
Options=

[Install]
WantedBy=multi-user.target
```
以下はそれぞれの項目の説明です。

<Tabs>
  <TabItem label='Description'>
  説明を自由に書いて、わかりやすくしておくことができます。
  </TabItem>
  <TabItem label= 'What'>
  先ほどコピーした UUID を指定してください。今回の例では `UUID=4e55896f-3f1f-4bc5-aa8a-fec099689cd9` になります。
  </TabItem>
  <TabItem label= 'Where'>
  マウント場所を指定する部分です。存在しないフォルダが指定された場合は自動で作成されます。今回の例では `/home/user/games`になります。ホームフォルダ内でマウントする場合は、"user" をユーザーネームに置き換えてください。
  </TabItem>
  <TabItem label= 'Type'>
  ファイルシステムのタイプを指定する部分です。今回は `ext4` です。
  </TabItem>
  <TabItem label= 'Options'>
  マウントオプションを指定する部分です。必要に応じたオプションを記入してください。今回の例では `defaults,exec,rw,noatime` になります。スペースの有無は影響しません。
  </TabItem>
</Tabs>
---

今回の例にしたがって記入すると、マウントファイルは以下の通りです。
```ini
[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
```

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

```sh
sudo systemctl daemon-reload
sudo systemctl enable --now home-$USER-games.mount
```

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

```sh
● 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** を確認

```sh
lsblk -f
```

- マウントファイルを作成

```sh
micro /etc/systemd/system/mnt-foo.mount
```

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

- マウントファイルを書く

```sh
[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` など、必要に応じてオプションを追加してください。

- デーモンをリロード

```sh
sudo systemctl daemon-reload
```

- ドライブをマウント&起動時に自動でマウントするように設定

```sh
sudo systemctl enable --now mnt-foo.mount
```

### 参考リンク

- [ファイルシステム階層規格](https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html)
- [FHS の /media/ について](https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s11.html)
- [dump のマニュアル](<https://linux.die.net/man/8/dump>)
- [fsck のマニュアル](https://man.archlinux.org/man/fsck.8)
- [systemd-mount](https://manual.siduction.org/systemd-mount_en.html)

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

:::danger
fstab ファイルはブート中に読み込まれるため、ファイルに間違いがあるとシステムの起動に失敗するおそれがあります。再起動を行う前に、追加したエントリに誤字脱字がないか再確認してください。もし失敗した場合は、ライブ環境で起動し[インストール済みのシステムに chroot](/ja/features/cachy_chroot) してファイルを編集することで修復できます。
:::

### 1. パーティション UUID の確認

```sh title="ターミナルで以下のコマンドを実行"
lsblk -f
```

```sh title="出力例"
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` であると判断できます。

### 2. パーティションを特定する

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

```sh
sudo fdisk -l
```

```sh title="出力例"
デバイス         開始位置   終了位置     セクタ サイズ タイプ
/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 が `08A24E90A24E81E4` の `nvme0n1p3` であることが正確にわかりました。本来はここまでする必要はありませんが、念の為確認してミスを防ぐことができます。

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

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

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

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

```sh
sudo nano /etc/fstab
```

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

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

:::note
`/media/windows` がファイルシステム上に存在している必要があります。存在しない場合は `mkdir` で作成してください。
:::

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

- `UUID=08A24E90A24E81E4` はマウントしたいファイルシステムを UUID で指定しています。ファイルシステムを識別する方法はほかにもありますが、UUID が最も安全です。その他の方法は[こちら](https://wiki.archlinux.jp/index.php/Fstab#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E8%AD%98%E5%88%A5)をご覧ください。
- `/media/windows` はドライブのマウントポイントです。[Linux ファイルシステム階層規格](https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html)では `/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=1000` と `gid=1000`: マウントされたファイルのユーザーとグループの所有権を ID 1000 に設定します。

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

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

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

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

  - `最初の 0`: dump は現代のシステムでは通常廃止されています。0 のままにしても問題ありません。詳細は[こちら](https://linux.die.net/man/8/dump)をご覧ください。

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

各オプションの詳細は [fstab のマニュアルページ](https://man7.org/linux/man-pages/man5/fstab.5.html)と [mount のマニュアルページ](https://man7.org/linux/man-pages/man8/mount.8.html)をご覧ください。
#### 補足

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

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

と

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

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

### 4. 仕上げ

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

```sh
sudo systemctl daemon-reload
```

```sh
sudo mount -a
```

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

```sh
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'
 ```

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

 ```sh
 ln -s /media/windows ~/Windows
 ```

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

 ```sh
 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** の確認

```sh
lsblk -f
```

- `/etc/fstab` を開く

```sh
sudo nano /etc/fstab
```

- ファイルの末尾にエントリを追加する

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

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

- デーモンをリロードする

```sh
sudo systemctl daemon-reload
```

- ドライブをマウントする

```sh
sudo mount -a
```

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

### 参考リンク

- [ファイルシステム階層規格](https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html)
- [FHS の /media/ について](https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s11.html)
- [dump のマニュアル](<https://linux.die.net/man/8/dump>)
- [fsck のマニュアル](https://man.archlinux.org/man/fsck.8)
- [fstab のマニュアルページ](https://man.archlinux.org/man/fstab.5.en)
- [Arch Linux Wiki 日本語版 - fstab](https://wiki.archlinux.jp/index.php/Fstab)
