USBストレージにext4のファイルシステムを作成してRaspberry Piにマウントする

USBストレージにext4のファイルシステムを作成してRaspberry Piにマウントしてみました。

はじめに

使用していないUSBストレージがありましたのでせっかくなのでext4のファイルシステムを作成してRaspberry Piにマウントしてみることにしました。

このUSBストレージのサイズは8Gで数年前にWindows10のイメージを作成するために購入したものだったかと思います。

USBデバイスをext4でフォーマット

USBストレージの接続

ラズパイにUSBストレージをmicro USB OTGケーブルを使用して接続します。

接続したら以下のコマンドでUSBストレージがブロックデバイスとして認識されているかを確認しました。

lsblk

結果は以下です。

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    1  7.2G  0 disk
└─sda1        8:1    1  7.2G  0 part
mmcblk0     179:0    0 29.1G  0 disk
├─mmcblk0p1 179:1    0  256M  0 part /boot
└─mmcblk0p2 179:2    0 28.8G  0 part /

NAMEがsdaのデバイスが増えていましたので接続したUSBストレージがブロックデバイスとして認識されていることが確認できます。

次にUSBストレージの現在のファイルシステムの種類を以下のコマンドで確認しました。

blkid /dev/sda1

結果は以下です。

/dev/sda1: LABEL="WDO_MEDIA64" UUID="A0EF-D6B5" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="46cc5cb1-01"

このUSBストレージの現在のファイルシステムの種類は vfat となっていました。

USBストレージにパーテーションの作成

まずはUSBストレージにパーテーションを作成します。

sudo parted /dev/sda

以下のように表示されます。

GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

まずはprintを入力して現在のパーティションテーブルを表示します。

(parted) print

以下のように表示されました。利用しているUSBストレージの容量は8GBです。

Model: TOSHIBA TransMemory (scsi)
Disk /dev/sda: 7750MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      32.3kB  7750MB  7750MB  primary  fat32        boot, lba

はじめに新しいパーティションテーブルを作成します。タイプはGUIDパーティションテーブル(GPT)にしました。

(parted) mklabel gpt

すべてのデータを失ってもいいですか?の警告が表示るので確認して Yes を入力します。

Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No?

GUIDパーティションテーブルが作成されているか確認します。

(parted) print

「Partition Table: gpt」となっているので無事作成されました。

Model: TOSHIBA TransMemory (scsi)
Disk /dev/sda: 7750MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  Flags

パーテーションテーブルの作成ができましたので次はパーテーションを作成します。

(parted) mkpart primary ext4 0G 8G

パーテーションが作成できているか確認します。

(parted) print

Number 1 のパーテーションが作成されました。

Model: TOSHIBA TransMemory (scsi)
Disk /dev/sda: 7750MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  7750MB  7749MB  ext4         primary

パーテーションの作成ができましたのでpartedを終了します。

(parted) quit

USBストレージをext4でフォーマット

ファイルシステムはLinuxで最も一般的なext4を採用することにしました。

大きなボリュームサイズ(1EiBまで)とファイルサイズ(16TiBまで)に対応していることやサブディレクトリの数に上限がないことなどがext4ファイルシステムの特徴です。

それではUSBストレージに作成したパーテーションにext4のファイルシステムを作成します。

sudo mkfs.ext4 /dev/sda1

続行するかの確認が表示されますので y を入力します。

mke2fs 1.46.2 (28-Feb-2021)
/dev/sda1 contains a ext4 file system
        created on Mon Feb  5 20:31:49 2024
Proceed anyway? (y,N) 

ジャーナルのサイズを聞かれますのでそのままエンターを入力してデフォルトのサイズにしました。

Creating filesystem with 1891840 4k blocks and 473280 inodes
Filesystem UUID: 21c8ede1-b3ee-4e60-afbd-1f21d9a3b346
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks):

少し待つと以下のメッセージが表示されファイルシステムの作成が完了しました。

done
Writing superblocks and filesystem accounting information: done

作成したブロックデバイスの属性を確認します。

blkid  /dev/sda1

TYPEがext4になっていますので無事ext4のファイルシステムを作成することができました。

/dev/sda1: UUID="2407354d-f1ce-4a3f-a256-9d531f54b40d" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="c13c91a4-35dc-40fc-905d-178771f9e0ef"

USBストレージに作成したext4ファイルシステムをマウントする

mountコマンドでマウントして確認

まずは mount コマンドでマウントして動作するか確認しました。

最初にマウントするフォルダを作成します。マウントする場所は /mnt/usb にしました。

sudo mkdir /mnt/usb

それでは mount コマンドでマウントします。

sudo mount /dev/sda1 /mnt/usb

マウントできているか df コマンドで確認します。

df -h /mnt/usb

以下が表示されましたのでマウントできていました。

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       7.1G   28K  6.7G   1% /mnt/usb

マウントしたディレクトリにファイルを作成できるか確認しました。

sudo cp /etc/passwd /mnt/usb/
ls /mnt/usb/

ファイルが作成できていましたので問題なさそうなのでアンマウントしておきます。

sudo umount /mnt/usb

fstab にマウントする設定を追加する

自動でマウントするように fstab に設定を追加します。

sudo vi /etc/fstab

以下の設定を追加しました。PARTUUID には blkid コマンドで確認した内容を設定しています。

PARTUUID=c13c91a4-35dc-40fc-905d-178771f9e0ef  /mnt/usb/ ext4 defaults,x-systemd.automount,noatime,nofail 0 1

fstabに設定を追加したので手動でmountコマンドを実行してマウントされるか確認しました。

sudo mount -a

マウントされることが確認できましたので再起動してもマウントされるているか確認を行いました。

おわりに

今回は使用していない(壊れてもいい)USBストレージにext4のファイルシステムを作成してラズパイにマウントしてみました。

USBデバイスをコマンドでフォーマットする機会は普段あまりないので勉強になりました。