■概要
USB HDD(USB 3.0対応)を、Raspberry Pi 4 B のUSB3.0ポートに取り付けて、
指定したディレクトリにマウントして運用する手順について記した。
Raspberry pi 4 Bは、Raspbian Buster Lite 2020-02-13 がインストールした。
マウントはRaspbianの起動時に自動的にされるように設定した。
〇Raspberry Pi 4 B は、USB 3.0ポートを2つ備えている。
USB 3.0 SuperSpeedモード(SSモード)に対応したUSB HDDドライブを取り付けることによって、高速にディスクへのアクセスが可能になる。
〇外部電源を接続できるUSBハブ(USB 3.0対応)を利用する。
Raspberry Pi 4 BのUSB 3.0ポートが供給可能な電力は少ない可能性がある。
外部電源を供給せずに、直にRaspberry Pi 4 BのUSB 3.0ポートにUSB HDDを接続しても、
USB HDDは異音を発して正常に作動しなかった。
異なるメーカーのUSB HDD(いずれも2.5インチHDDが入るタイプ)も用いてみたが、同様に正常に動作しなかった。
駆動に必要な電力が不足していると考えられる。これは、Raspberry Pi 3においても同様だった。
そのため、USB HDDは、外部電源の接続が可能なUSB HUBを経由させてRaspberry Pi 4に接続した。すると正常にUSB HDDは駆動した。
もちろん、このUSB HUBも、USB3.0に対応している。
〇接続の全体の様子(下の写真)
右側にRaspberry Pi 4 B
中央の正方形のものがUSB 3.0 ハブと、USB HDDである。
左側で、ACコンセントにつないでいるのはUSBアダプタであり、中央のUSB3.0 ハブの外部電源である。
〇実際に使用したUSB 3.0 ハブ(下の写真)
4つのUSB 3.0ポートが上表面あり、そのうち一つにUSB HDDをつないでいる。
側面に2つ並んで接続されているものの内、
左側の端子がRaspberry Pi 4 のUSB 3.0ポートと接続されている。
右側の端子は、外部電源供給用であり、マイクロUSBケーブルが使用できるので専用DCアダプタが不要でとても便利である。
ここでは、1A出力程度のスマホのUSBアダプタに接続している。
感想(2件) |
下記手順の前に、予め、rootユーザーになっておく。
pi@raspberrypi:~ $ sudo su
■先ず、USB3.0 HUB をRaspberry pi 4のUSB3.0 ポート接続
ここで接続したUSB HUBは、USB 3.0に対応している。
そのため、SuperSpeed Gen1 USB Device(USB 3.0 Hub)として認識されていることがわかる。
また、USB3.0デバイスだけでなく、USB 2.0デバイスとしても認識されていることもわかった。
詳細を知りたい場合は、下記ページを参考にしてください。
【Raspberry pi 4 B / Raspbian】USBポートに各種USB機器を接続したときのlsusbツリーやカーネルメッセージ表示【Raspbian Buster Lite 2020-02-13】
■次に、USB 3.0 接続のHDDドライブをHUBに取り付けた。
〇USB HDDのパーティション作成とフォーマット
HDDは、Raspberry Pi専用で使うので、パーティション1をEXT4でフォーマットしておいた。
パーティションの作成とファイルシステム作成については、次のページを参考にしてください。(HDD上のデータは消去されるので注意)
【Raspberry Pi 4 B / Raspbian】BOINCの作業領域を外付けUSB HDDドライブに移してSDの劣化を防止する【BOINC 7.14.2+dfsg-3】
上記ページの、
「■BOINCのワーキングディレクトリを移すためのUSB接続のHDD(もしくはSSD)の準備」の項目に手順を記載しています。
(こちらはアライメントについて記載があり、対処しています。)
「〇ext4ファイルシステムの作成(フォーマット)」まで完了したら、OKです。
あるいは、以下のページも参考にしてください。
あるいは、以下のページも参考にしてください。
(こちらはアライメントについて記述していません。)
【Linux CentOS6.2 64bit版】partedコマンドを使いGPT対応大容量ディスクにパーティションを追加する
上記については、今回使用したHDDは500GB程度なのでGPTの条件は無視した。
すなわち旧来からのパーティションテーブルを使用した。
〇USB HDDドライブを上記のHUBに取り付け、カーネルメッセージを確認した。
接続したUSB HDDは、SuperSpeedモードで認識された。
その上、USB HDDが対応しているため、SCSIディスクとして認識されている。(uasと表示)
そして、そのパーティション1(sda1)が認識された。
root@raspberrypi:/home/pi# dmesg
■システム起動時に自動的にマウントするための設定を行った。
〇マウント先のディレクトリを作成した。
/mntディレクトリは最初から存在していた。
サブディレクトリとして、disk1というディレクトリを設けた。
root@raspberrypi:/home/pi# mkdir /mnt/disk1
作成したディレクトリを表示させた。
root@raspberrypi:/home/pi# ls /mnt/disk1 -al
これにより、他ユーザーもディレクトリを開くことが許可される。
〇マウントしたUSB HDDのディスク内のパーティションのPARTUUIDを調べた。
マウント設定には、パーティションのPARTUUIDが必要になるので調べておく。
root@raspberrypi:/home/pi# blkid
〇fstab設定ファイルの編集を行った。
次のように、fstabファイルを編集した。
下記のように、PARTUUID項目には、上記で見つけた番号を記載しておく。
マウント先のディレクトリは、さきに作成した「/mnt/disk1」を指定した。
マウントしたいディスクのパーティション1は、ext4でフォーマットされているのでそのように指定した。
オプションは、nofailを忘れないようにすること。さもなければ、起動しなくなる危険がある。
root@raspberrypi:/home/pi# nano /etc/fstab
CTRL+O Write Out
〇システムを再起動した。
root@raspberrypi:/home/pi# reboot
■確認
〇指定したディレクトリにマウントされたか確認した。
/mnt/disk1にマウントされたディスク(USB HDD)の容量は、459GBあることがわかる。
root@raspberrypi:/home/pi# df -h
〇アクセス権限を確認した。
もし、下記のように、マウント先ディレクトリのアクセス権限が700(rwx------)になっていれば、chmodコマンドで、755(rwxr-xr-x)に変更する。
さもなければ、他ユーザーからマウント先ディレクトリに作られたサブディレクトリにアクセスすることができなくなってしまう。
下記例において、/mnt/disk1にさらにサブディレクトリを設け、サブディレクトリにはpi以外の別ユーザーのアクセス許可を与えたとしても、
トップディレクトリである/mnt、/mnt/diskに、他ユーザーに5(r-x)以上の権限がなければ、サブディレクトリへアクセスができなくなってしまうからである。
root@raspberrypi:/home/pi# ls /mnt/disk1 -al
root@raspberrypi:/home/pi# chmod 755 /mnt/disk1
root@raspberrypi:/home/pi# ls /mnt/disk1 -al
以上
<参考>
・External storage configuration
< https://www.raspberrypi.org/documentation/configuration/external-storage.md > 2020年4月19日
・【Linux CentOS6.2 64bit版】partedコマンドを使いGPT対応大容量ディスクにパーティションを追加する
< https://akira-arets.blogspot.com/2012/02/centos62-parted-create-partition.html > 2020年4月19日
・ディスクのアクセス速度を上げるには
< https://www.atmarkit.co.jp/flinux/rensai/linuxtips/659noatime.html > 2020年4月19日
・Raspberry Piでfstab弄ったら起動できなくなった場合の備忘録
< https://qiita.com/YuzuRyo61/items/fa5d23a3420d8c24c77d > 2020年4月19日
・What is UUID, PARTUUID and PTUUID?
< https://unix.stackexchange.com/questions/375548/what-is-uuid-partuuid-and-ptuuid > 2020年4月24日
【Linux CentOS6.2 64bit版】partedコマンドを使いGPT対応大容量ディスクにパーティションを追加する
上記については、今回使用したHDDは500GB程度なのでGPTの条件は無視した。
すなわち旧来からのパーティションテーブルを使用した。
〇USB HDDドライブを上記のHUBに取り付け、カーネルメッセージを確認した。
接続したUSB HDDは、SuperSpeedモードで認識された。
その上、USB HDDが対応しているため、SCSIディスクとして認識されている。(uasと表示)
そして、そのパーティション1(sda1)が認識された。
root@raspberrypi:/home/pi# dmesg
[ 269.554717] usb 2-2.1: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[ 269.586133] usb 2-2.1: New USB device found, idVendor=152d, idProduct=0578, bcdDevice= 1.00
[ 269.586148] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 269.586161] usb 2-2.1: Product: USB to ATA/ATAPI Bridge
[ 269.586173] usb 2-2.1: Manufacturer: JMicron
[ 269.586185] usb 2-2.1: SerialNumber: 0123456789ABCDEF
[ 269.638320] scsi host0: uas
[ 269.639919] scsi 0:0:0:0: Direct-Access JMicron Generic 8101 PQ: 0 ANSI: 6
[ 269.714236] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 271.939973] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[ 271.939989] sd 0:0:0:0: [sda] 4096-byte physical blocks
[ 271.944628] sd 0:0:0:0: [sda] Write Protect is off
[ 271.944645] sd 0:0:0:0: [sda] Mode Sense: 53 00 00 08
[ 271.945087] sd 0:0:0:0: [sda] Disabling FUA
[ 271.945103] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 271.945843] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes not a multiple of physical block size (4096 bytes)
[ 271.965122] sda: sda1
[ 271.968024] sd 0:0:0:0: [sda] Attached SCSI disk
■システム起動時に自動的にマウントするための設定を行った。
〇マウント先のディレクトリを作成した。
/mntディレクトリは最初から存在していた。
サブディレクトリとして、disk1というディレクトリを設けた。
root@raspberrypi:/home/pi# mkdir /mnt/disk1
作成したディレクトリを表示させた。
root@raspberrypi:/home/pi# ls /mnt/disk1 -al
total 8上記のように、他ユーザーからのアクセスは許可されている。
drwxr-xr-x 2 root root 4096 Apr 22 11:14 .
drwxr-xr-x 3 root root 4096 Apr 22 11:14 ..
これにより、他ユーザーもディレクトリを開くことが許可される。
〇マウントしたUSB HDDのディスク内のパーティションのPARTUUIDを調べた。
マウント設定には、パーティションのPARTUUIDが必要になるので調べておく。
root@raspberrypi:/home/pi# blkid
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="4***-****" TYPE="vfat" PARTUUID="7**a****-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="********-****-****-****-************" TYPE="ext4" PARTUUID="7**a****-02"
/dev/sda1: LABEL="hdd" UUID="e*******-****-4***-9***-b***********" TYPE="ext4" PARTUUID="0*0****e-01"
/dev/mmcblk0: PTUUID="7**a****" PTTYPE="dos"
〇fstab設定ファイルの編集を行った。
次のように、fstabファイルを編集した。
下記のように、PARTUUID項目には、上記で見つけた番号を記載しておく。
マウント先のディレクトリは、さきに作成した「/mnt/disk1」を指定した。
マウントしたいディスクのパーティション1は、ext4でフォーマットされているのでそのように指定した。
オプションは、nofailを忘れないようにすること。さもなければ、起動しなくなる危険がある。
root@raspberrypi:/home/pi# nano /etc/fstab
proc /proc proc defaults 0 0
PARTUUID=7**a****-01 /boot vfat defaults 0 2
PARTUUID=7**a****-02 / ext4 defaults,noatime 0 1
PARTUUID=0*0****e-01 /mnt/disk1 ext4 defaults,auto,rw,nofail 0 2
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
CTRL+O Write Out
File Name to Write: /etc/fstabCTRL+X Exit
〇システムを再起動した。
root@raspberrypi:/home/pi# reboot
■確認
〇指定したディレクトリにマウントされたか確認した。
/mnt/disk1にマウントされたディスク(USB HDD)の容量は、459GBあることがわかる。
root@raspberrypi:/home/pi# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 15G 1.3G 13G 10% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 8.5M 1.9G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mmcblk0p1 253M 53M 200M 21% /boot
/dev/sda1 459G 73M 435G 1% /mnt/disk1
tmpfs 391M 0 391M 0% /run/user/1000
〇アクセス権限を確認した。
もし、下記のように、マウント先ディレクトリのアクセス権限が700(rwx------)になっていれば、chmodコマンドで、755(rwxr-xr-x)に変更する。
さもなければ、他ユーザーからマウント先ディレクトリに作られたサブディレクトリにアクセスすることができなくなってしまう。
下記例において、/mnt/disk1にさらにサブディレクトリを設け、サブディレクトリにはpi以外の別ユーザーのアクセス許可を与えたとしても、
トップディレクトリである/mnt、/mnt/diskに、他ユーザーに5(r-x)以上の権限がなければ、サブディレクトリへアクセスができなくなってしまうからである。
root@raspberrypi:/home/pi# ls /mnt/disk1 -al
total 24
drwx------ 3 pi pi 4096 Apr 22 05:08 . ←マウント先であるカレントディレクトリ(/mnt/disk1自身)
drwxr-xr-x 3 root root 4096 Apr 22 11:14 ..
drwx------ 2 root root 16384 Apr 22 05:08 lost+found
root@raspberrypi:/home/pi# chmod 755 /mnt/disk1
root@raspberrypi:/home/pi# ls /mnt/disk1 -al
total 24
drwxr-xr-x 3 pi pi 4096 Apr 22 05:08 .
drwxr-xr-x 3 root root 4096 Apr 22 11:14 ..
drwx------ 2 root root 16384 Apr 22 05:08 lost+found
以上
<参考>
・External storage configuration
< https://www.raspberrypi.org/documentation/configuration/external-storage.md > 2020年4月19日
・【Linux CentOS6.2 64bit版】partedコマンドを使いGPT対応大容量ディスクにパーティションを追加する
< https://akira-arets.blogspot.com/2012/02/centos62-parted-create-partition.html > 2020年4月19日
・ディスクのアクセス速度を上げるには
< https://www.atmarkit.co.jp/flinux/rensai/linuxtips/659noatime.html > 2020年4月19日
・Raspberry Piでfstab弄ったら起動できなくなった場合の備忘録
< https://qiita.com/YuzuRyo61/items/fa5d23a3420d8c24c77d > 2020年4月19日
・What is UUID, PARTUUID and PTUUID?
< https://unix.stackexchange.com/questions/375548/what-is-uuid-partuuid-and-ptuuid > 2020年4月24日