Ubuntu22.04で外付けドライブのフォーマットと自動マウント

Ubuntu22.04で、外付けドライブのフォーマット方法と、パソコンの起動時に外付けドライブを自動マウントする方法を紹介します。

すべてCUIで実施し、mkfsコマンドでドライブをフォーマットし、/etc/fstabを編集することで自動マウントを行います。

また、mountコマンドを利用した手動マウント方法も紹介します。

パソコンに接続されている外付けドライブの確認

まず、lsblkコマンドでパソコンに接続されているドライブを確認します。

$ lsblk -f
NAME        FSTYPE   FSVER LABEL    UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
...
sda
sdb
└─sdb1      ext4     1.0            XXX  278.9G    64% /hoge
....

上記の例では、二つのドライブ(sdasdb)がマウントされていることが確認できます。(ここのデバイス番号は接続されているHDD数などで変わります)

また、sdaドライブはパーティションを持っておらず、sdbは一つのパーティション(sdb1)がext4でフォーマットされていることが確認できます。

ドライブにパーティションを作成しext4でフォーマット

下記では、/dev/sdaに対してパーティションの作成とext4でのフォーマットを行います。

まず、パーティションを作成します。

$ sudo fdisk /dev/sda
fdisk (util-linux 2.37.2) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。

# パーティションを作成する
コマンド (m でヘルプ): n 

# パーティション番号を指定
パーティション番号 (1-128, 既定値 1): 1

# 最初のセクタ
最初のセクタ (34-11721045134, 既定値 2048): 2048

# 最後のセクタ
Last sector, +/-sectors or +/-size{K,M,G,T,P} (34-11721045134, 既定値 11721045134): 11721045134

新しいパーティション 1 をタイプ Linux filesystem、サイズ 5.5 TiB で作成しました。

# 書き込み
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。

パーティションが作成されたことを確認します。

$ lsblk
...
sda           8:0    0   5.5T  0 disk
└─sda1        8:1    0   5.5T  0 part
...

5.5TBのパーティション(/sda/sda1)が作成されたことが確認できます。

次に、ext4でフォーマットします。

$ sudo mkfs -t ext4 /dev/sda1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 1465130385 4k blocks and 183144448 inodes
Filesystem UUID: ddae5e85-7cba-4132-abdf-e698966dbfdb
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

ext4でフォーマットされたことを確認しましょう。

$ lsblk -f
...
sda
└─sda1      ext4     1.0            XXX
...

sda1ext4でフォーマットされたパーティションが作成されていることが確認できました。

mountコマンドで手動マウント

/sda/sda1パーティションをmountコマンドでマウントします。

$ sudo mount -t ext4 /dev/sda1 /path/to/mount/dir
  • -t オプションでファイルシステムを指定します。子満開はext4でフォーマットしているドライブです

これで、/path/to/mount/dirに、外付けHDDがマウントされました。

UUIDでのマウント

/sda/sda1のようなデバイス番号でマウントすることは可能ですが、この値はドライブの接続状況に応じて変更されうる値なので、毎回デバイス番号を調べるのは面倒くさいです。

デバイスごとに一意な値であるUUIDを利用してマウントする方法も紹介します。(正確には、ドライブをフォーマットするとUUIDは変更されます)

blkidコマンドでUUIDを調べます。

$ blkid
...
/dev/sda1: UUID="03ba70ae-16e9-ZZZZ-YYYYY-XXXXXX" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="a3b0ac7e-1541-ZZZZ-YYYYY-XXXXXX

UUID="XXX"がこのデバイスのUUIDです。

次に、mountコマンドでUUIDを利用してマウントします。

sudo mount -t ext4 UUID=<DEVICE_UUID> /path/to/mounted/dir

パソコンの起動時に自動でマウント

/etc/fstabを編集します。下記の1行をファイルの末尾に追加してください。

UUID=03ba70ae-16e9-ZZZZ-YYYY-XXXX /path/to/mounted/dir ext4 nofail 0 0
  • UUIDは上記で述べた通り、blkidコマンドで調べたUUIDを指定してください。
  • nofailオプションは、マウントに失敗してもパソコンを起動するオプションです。これがない場合、マウントに失敗するとパソコンが起動しなくなります。

再起動すると、自動でデバイスがマウントされます。

  • この記事を書いた人

たかさん

犬と暮らすクラウドエンジニア。GCPが好きだけど良く触るのはAWSとAzureです。

-環境構築
-