Raspbianで外付けHDDをフォーマットしてマウントする

RaspberryPiで、大事なデータを書込回数に制限があるマイクロSDに保存しておくのは少し不安なので、データを外付けHDDに保存できるようにします。外付けHDDにデータを保存しておくと、マイクロSDが寿命を迎えたり、突然クラッシュしたときでも、大事なデータを救出しやすくなります。

今回は、説明のためにUSBメモリを使用していますが、基本的には外付けHDDの場合と操作は同じです。

接続ポイントを確認

自動でマウントされている場合

df -Th
dattesar@raspberry:~ $ df -Th
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
udev           devtmpfs   1.9G     0  1.9G    0% /dev
tmpfs          tmpfs      393M  5.8M  387M    2% /run
/dev/sda1      ext4       8.9G  5.9G  2.6G   70% /
tmpfs          tmpfs      2.0G     0  2.0G    0% /dev/shm
tmpfs          tmpfs      5.0M  4.0K  5.0M    1% /run/lock
tmpfs          tmpfs      2.0G     0  2.0G    0% /sys/fs/cgroup
tmpfs          tmpfs      393M  4.0K  393M    1% /run/user/1001
/dev/sdb1      ext4        15G   86M   14G    1% /media/dattesar/d701a9fc-5f2a-4568-a000-af30d4c671fe

外付けHDDが/dev/sdb1に接続されていることがわかったので、アンマウントします。

sudo umount /dev/sdb1

マウントされていない場合

自動でマウントされていない場合は、接続されている場所を確認します。

blkidの場合

sudo blkid
dattesar@raspberry:~ $ sudo blkid
/dev/sr0: UUID="2021-01-11-15-55-51-00" LABEL="Debian RPD M-A 1" TYPE="iso9660" PTUUID="44c9feb7" PTTYPE="dos"
/dev/sda1: UUID="76197a60-3cfb-40ec-a645-d2bd67142bfd" TYPE="ext4" PARTUUID="3b947c65-01"
/dev/sda5: UUID="27696d82-e720-4bba-ae60-0a3de4e67ecd" TYPE="swap" PARTUUID="3b947c65-05"
/dev/sdb1: UUID="d701a9fc-5f2a-4568-a000-af30d4c671fe" TYPE="ext4" PARTUUID="0034f06d-01"

dmesgの場合

sudo dmesg
dattesar@raspberry:~ $ sudo dmesg

(省略)

[   85.321625]  sdb: sdb1
[   85.324420] sd 33:0:0:0: [sdb] Attached SCSI removable disk
[   85.615824] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)

パーティションの作成と削除

/dev/sdbに接続されていることがわかったので、fdiskでパーティションを確認します。

sudo fdisk /dev/sdb
dattesar@raspberry:~ $ sudo fdisk /dev/sdb

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


コマンド (m でヘルプ): p
ディスク /dev/sdb: 14.5 GiB, 15518924800 バイト, 30310400 セクタ
ディスク型式: TransMemory     
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x0034f06d

デバイス   起動 開始位置 終了位置   セクタ サイズ Id タイプ
/dev/sdb1  *        2048 30310399 30308352  14.5G  c W95 FAT32 (LBA)

パーティションをすべて削除して、新しくパーティションを作成してみます。

dattesar@raspberry:~ $ sudo fdisk /dev/sdb

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


コマンド (m でヘルプ): p
ディスク /dev/sdb: 14.5 GiB, 15518924800 バイト, 30310400 セクタ
ディスク型式: TransMemory     
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x0034f06d

デバイス   起動 開始位置 終了位置   セクタ サイズ Id タイプ
/dev/sdb1  *        2048 30310399 30308352  14.5G  c W95 FAT32 (LBA)

コマンド (m でヘルプ): d
パーティション 1 を選択
パーティション 1 を削除しました。

コマンド (m でヘルプ): d
パーティションは何も設定されていません!

コマンド (m でヘルプ): n
パーティションタイプ
   p   基本パーティション (0 プライマリ, 0 拡張, 4 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): 

既定の回答 p であるものとみなします。
パーティション番号 (1-4, 既定値 1): 
最初のセクタ (2048-30310399, 既定値 2048): 
最終セクタ, +/-セクタ番号 または +/-サイズ{K,M,G,T,P} (2048-30310399, 既定値 30310399): 

新しいパーティション 1 をタイプ Linux、サイズ 14.5 GiB で作成しました。
パーティション #1 には ext4 署名が書き込まれています。

署名を削除しますか? [Y]es/[N]o: Y

署名は write (書き込み)コマンドを実行すると消えてしまいます。

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

dattesar@raspberry:~ $ sudo fdisk /dev/sdb

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

コマンド (m でヘルプ): p
ディスク /dev/sdb: 14.5 GiB, 15518924800 バイト, 30310400 セクタ
ディスク型式: TransMemory     
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x0034f06d

デバイス   起動 開始位置 終了位置   セクタ サイズ Id タイプ
/dev/sdb1           2048 30310399 30308352  14.5G 83 Linux

コマンド (m でヘルプ): q

よく使うコマンドは、このあたり。

変更する場合は、最後にwで書き込むのを忘れないように

dパーティションを削除します
n新しいパーティションを追加します
pパーティション情報を表示します
wパーティション情報をディスクに書き込んで終了します
q変更点を保存せずに終了します
dattesar@raspberry:~ $ sudo fdisk /dev/sdb

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


コマンド (m でヘルプ): m

ヘルプ:

  DOS (MBR)
   a   起動可能フラグを切り替えます
   b   入れ子の BSD ディスクラベルを編集します
   c   DOS 互換フラグを切り替えます

  一般
   d   パーティションを削除します
   F   パーティションのない領域を一覧表示します
   l   既知のパーティションタイプを一覧表示します
   n   新しいパーティションを追加します
   p   パーティション情報を表示します
   t   パーティションタイプを変更します
   v   パーティション情報を検証します
   i   パーティションの情報を表示します

  その他
   m   このメニューを表示します
   u   表示項目の単位を変更します
   x   特殊機能に移動します (熟練者向け機能)

  スクリプト
   I   ディスクのレイアウトを sfdisk 互換のスクリプトから読み込みます
   O   ディスクのレイアウトを sfdisk 互換のスクリプトに書き出します

  保存と終了
   w   パーティション情報をディスクに書き込んで終了します
   q   変更点を保存せずに終了します

  新しいラベルを作成します
   g   新しい (何もない) GPT パーティションテーブルを作成します
   G   新しい (何もない) SGI (IRIX) パーティションテーブルを作成します
   o   新しい (何もない) DOS パーティションテーブルを作成します
   s   新しい (何もない) Sun パーティションテーブルを作成します

HDDをフォーマット

今回は、ext4でフォーマットします。

sudo mkfs -t ext4 /dev/sdb1
dattesar@raspberry:~ $ sudo mkfs -t ext4 /dev/sdb1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 3788544 4k blocks and 948416 inodes
Filesystem UUID: ab6ed304-b4e9-4937-a313-5968d0393c69
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done  
dattesar@raspberry:~ $ sudo fdisk /dev/sdb

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


コマンド (m でヘルプ): p
ディスク /dev/sdb: 14.5 GiB, 15518924800 バイト, 30310400 セクタ
ディスク型式: TransMemory     
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x0034f06d

デバイス   起動 開始位置 終了位置   セクタ サイズ Id タイプ
/dev/sdb1           2048 30310399 30308352  14.5G 83 Linux

コマンド (m でヘルプ): q

HDDをマウント

/USBHDDにマウントします。

マウント先のディレクトリを作成してから、マウントします。

sudo mkdir /USBHDD
sudo mount /dev/sdb1 /USBHDD

マウントできているか、確認。

dattesar@raspberry:~ $ df -Th
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
udev           devtmpfs   1.9G     0  1.9G    0% /dev
tmpfs          tmpfs      393M  5.8M  387M    2% /run
/dev/sda1      ext4       8.9G  5.9G  2.6G   70% /
tmpfs          tmpfs      2.0G     0  2.0G    0% /dev/shm
tmpfs          tmpfs      5.0M  4.0K  5.0M    1% /run/lock
tmpfs          tmpfs      2.0G     0  2.0G    0% /sys/fs/cgroup
tmpfs          tmpfs      393M  4.0K  393M    1% /run/user/1001
/dev/sdb1      ext4        15G   41M   14G    1% /USBHDD