【電子工作】Raspberry PiにUSBストレージを追加する(ext4)

Raspberry PiにUSBストレージを追加した際の手順を忘備しておく。


ディスクの追加

ストレージ構成の確認

新しいストレージを追加する前に現状の構成を確認しておく。
$ sudo parted -l
Model: SD SD32G (sd/mmc)
Disk /dev/mmcblk0: 31.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  273MB   268MB   primary  fat32        lba
 2      273MB   31.0GB  30.7GB  primary  ext4

ストレージの追加

ストレージを物理的に追加する。

追加ストレージの確認

追加したストレージのデバイス名を確認する。以下例ではディスクラベルがないのが新しく追加したディスク。

$ sudo parted -l
Error: /dev/sda: unrecognised disk label
Model: CT500MX5 00SSD1 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Model: SD SD32G (sd/mmc)
Disk /dev/mmcblk0: 31.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  273MB   268MB   primary  fat32        lba
 2      273MB   31.0GB  30.7GB  primary  ext4

パーティションの作成

パーティションを作成する。以下は新たに追加した/dev/sdaにパーティションを作成する例。

$ sudo parted /dev/sda
...
(parted) print
Error: /dev/sda: unrecognised disk label Model: CT500MX5 00SSD1 (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: (parted) mklavel
New disk label type? GPT
Model: CT500MX5 00SSD1 (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted) mkpart Partition name? []? share File system type? [ext2]? ext4 Start? 0% End? 100% (parted) print Model: CT500MX5 00SSD1 (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 500GB 500GB ext4 share (parted) q Information: You may need to update /etc/fstab. $ sudo parted -l Model: CT500MX5 00SSD1 (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 500GB 500GB ext4 share Model: SD SD32G (sd/mmc) Disk /dev/mmcblk0: 31.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 4194kB 273MB 268MB primary fat32 lba 2 273MB 31.0GB 30.7GB primary ext4

ファイルシステムの作成

ファイルシステムを作成したいパーティションを指定し、フォーマットする。

$ sudo mkfs -t ext4 /dev/sda1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 122096384 4k blocks and 30531584 inodes
Filesystem UUID: 5986102c-5489-414c-a75d-b4d5f1dfb5cc
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000

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

$

マウント

マウント状況の確認

df(1)コマンドを使ってマウント状況と使用量を確認。
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G  1.6G   26G   6% /
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           1.9G   12K  1.9G   1% /dev/shm
tmpfs           1.9G   25M  1.9G   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   49M  204M  20% /boot
tmpfs           383M     0  383M   0% /run/user/1000

マウント先ディレクトリの作成

以下の手順でマウント先のディレクトリを作成する
$ ls /
bin   dev  home  lost+found  mnt  proc  run   srv  tmp  var
boot  etc  lib   media       opt  root  sbin  sys  usr
$ sudo mkdir /share
$ ls /
bin   dev  home  lost+found  mnt  proc  run   share  sys  usr
boot  etc  lib   media       opt  root  sbin  srv    tmp  var

PARTUUIDの確認

次の手順で使うため追加するパーティションのPARTUUIDを確認
$ sudo blkid /dev/sda1
/dev/sda1: UUID="338dd596-c9b9-4d23-aa57-36dfb5584fb4" TYPE="ext4" PARTLABEL="share" PARTUUID="8a46f8ab-708c-4dff-967f-6413f299a79d"

/etc/fstabの編集

前の手順で確認したPARTUUIDを用い、下記行を追加
PARTUUID=8a46f8ab-708c-4dff-967f-6413f299a79d   /share  ext4    defaults,noatime        0       1 

マウントの実行

マウントを実施
$ sudo mount -all

マウント状況の確認

再度、マウント状況を確認
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G  1.6G   26G   6% /
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           1.9G   12K  1.9G   1% /dev/shm
tmpfs           1.9G   25M  1.9G   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   49M  204M  20% /boot
tmpfs           383M     0  383M   0% /run/user/1000
/dev/sda1       458G   73M  435G   1% /share

以上

コメント