Raspberry Piを利用した WiFi ポータブルNASの製作

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

「SMB 1.0」サポート廃止は最終段階 ~プレビュー版Windows 11 Homeで既定無効に - 窓の杜

「SMB」(Server Message Block)は、Windowsのファイル共有プロトコル。現在ではOSを問わず用いられており、NASでの採用も多い。
 
「SMB 1.0」はWindows 2000/XPの時代に用いられていた古いバージョンで、「バージョン 1709」(Fall Creators Update、RS3)以降のWindows 10/Serverには基本的に含まれていない。しかし、「SMB 1.0」にしか対応しないコンシューマー・中小企業向けNASがまだ多く稼働していたこととから、「Home」と「Pro」エディションに限り「SMB 1.0」クライアントを残し、15日間のアップタイムの間に「SMB 1.0」の送信が確認されなかった場合に自動でアンインストールするという措置がとられていた。ただし、この措置も「Pro」エディションでは「バージョン 1809」で終了している。
(中略)
とはいえ、「SMB 1.0」がまったく利用できなくなるわけではない。[Windowsの機能の有効化または無効化]ダイアログからインストールすることはこれまで通り可能だ。ただし、将来的には「SMB 1.0」バイナリは削除される予定なので、できるだけ早めに古いNASをリプレースする計画を立てておきたい。

出張などクラウドが使えない出先で大量のデータにアクセスするために、ポータブル WiFiルーターの USBストレージ共有機能を利用した WiFiポータブル NASを使っていました。
これらの共有機能は「SMB 1.0」を使っているので対策が必要です。

手っ取り早いのは「SMB 2.0以降に対応した、USBポートを使ったストレージ共有機能を持つポータブル WiFiルーター」に買い替えることですが、現状ではそのような製品は販売されていないようです。
モバイル回線を使ったポケットWiFiならともかく、ホテルでのフリー WiFiが当たり前に普及した現在では、ポータブル WiFiルーターという製品ジャンル自体がオワコンですから仕方ありません。


ではどうするかですが、売ってないならば作ればいいのです。
ということで、Raspberry Piを利用して WiFi ポータブル NASを製作してみます。

1.仕様

・ファイル共有は samba
・家庭内では有線LANに接続する(ルーターのDHCPからIPアドレスを割り振られるので特に設定の必要はなし)
・出先ではWiFiのアクセスポイントとしてスタンドアロンで動作(WiFiインターフェースにDHCPサーバーを稼働)
・WiFiアクセスポイントと有線LANの間のブリッジ、IP転送は不要

2.必要なハードウェア

・Raspberry Pi(できればWiFi付の model 3B以降が望ましい)
・5V 2.5A以上の USB ACアダプタ + USBケーブル(3B+以前は microUSB、4B以降は Type-C)
・microSDXCカード(8GB以上)
・USB接続のストレージ(SSD、HDDなど)
・有線LAN

消費電力と性能を考えると、WiFiが 11acとなる model 3B+あたりがベストバランスかもしれません。
性能だけなら USB3.0端子と11acを持つ model 4Bが最高ですが、発熱も大きくなるので注意が必要です。
Pi Zero系は M2 SSD並にコンパクトですが、WiFi含めて性能が低いので大きなファイルの出し入れには不向きだと思います。
今回は2台目の model 3Bが余っているのでそれを使います。 WiFiが 11n止まりなのが不満ですが、上手く動くようなら 3B+以上に買い替えてもいいでしょう。
ちなみに 3B+も 4Bも WiFiチップは同じ(BCM43456)らしいです。 1×1で Max 433.3Mbps。

消費電力の抑制については「Raspberry Pi(ラズパイ)の消費電力を最適化する5つの方法」が助けになるかもしれません。

3.使用する主なソフトウェア

Raspberry Pi Imager
・ファイルサーバー(samba)
・DHCPサーバー(isc-dhcp-server)
・ソフトウェアアクセスポイント(hostapd)

Raspberry Pi OSを予めダウンロードしておく必要はありません(後述)。
本来ならファイアウォール(iptables-persistent)も入れるべきなんでしょうが、WiFiから有線LANへのルーティングは必要ないですし、この NASを使用するのは自分だけなので割愛します。

4.OSのインストール

Raspberry Pi OSデフォルトユーザーPiが削除へ、Bullseyeがアップデート | ラズパイダ

Raspberry Piでは、ユーザーPiが長らくデフォルトユーザーとして存在していました。特に変更しない限り、ユーザーPiで使っていたと思います。Webサイトなどで伝える時に、Piユーザーのままなのは便利だったのですが、セキュリティとしてどうなんだろうという懸念はありました。
 
今回のバージョンアップで、基本は初回起動時に新規にユーザーを作成するように変更されました。
 
合わせて、少し前から導入されているRaspberry Pi Imagerや初回セットアップウィザードも更新され、これまでより分かりやすくなっています。

という訳で、現在リリースされている Raspberry Pi OSは従来と異なる方法でダウンロード、インストールする必要があります。

まず Raspberry Pi Imagerをダウンロード、インストールします。

RPi_OS_Imager001.jpg

microSDXCカードをカードリーダーに挿入して、Raspberry Pi Imagerを起動します。

RPi_OS_Imager002.jpg

インストールする OSを選びますが、トップの階層には 32bit版の Raspberry Pi OSしか出てないので、OTHERをクリックします。

RPi_OS_Imager003.jpg

今回はデスクトップは不要なので Raspberry Pi OS (64-bit)の Lite版を選択します。
一度インストールした OSイメージはキャッシュされるので、それを選べば何度もダウンロードする必要がありません。

RPi_OS_Imager004.jpg

microSDXCカードを挿した SDカードリーダーが認識されていれば、選択されています。

RPi_OS_Imager005.jpg

OSと書き込み先ドライブを選択しても、まだ「書き込む」ボタンを押してはいけません。 右下の歯車ボタンを押すことで初期設定に入ります。

RPi_OS_Imager006.jpg

カスタマイズオプションを「いつも使う設定にする」にしておけば、次回 Imagerを起動したときもここの設定が残ります。
ホスト名と「SSHを有効化する」にチェックを入れます。 ホスト名は適当に付けて結構ですが、アンダーバーは使えないのでハイフンを使いましょう。

RPi_OS_Imager007.jpg

ユーザー名とパスワードを設定します。 ここで Piに代わるユーザーを新規作成しておかないと、あとでインストールをやり直すはめになります(やり直しました)。

「Wi-Fiを設定する」は通常のネットワーク・インターフェースとしての設定をするところです。
アクセスポイントとして設定するので、本来ならここで設定する必要はないのですが、チェックを入れておかないと RF-killによって WiFi機能がブロックされてしまうようです。
とりあえず家庭内の WiFiルーターの SSIDと WiFiパスワードを入力しておきます。

RPi_OS_Imager008.jpg

「WiFiを使う国」とロケールの設定したら「保存」ボタンを押します。

RPi_OS_Imager009.jpg

いよいよ「書き込む」をクリックします。

RPi_OS_Imager010.jpg

再確認に「はい」をクリック。
Raspberry Pi Imagerが OSイメージのダウンロードから microSDXCカードのフォーマット、OSイメージの書き込みまでを一気に行ってくれます。

RPi_OS_Imager011.jpg

正常に書き込みが完了したら、「SDカードを取り出してよいです」とのメッセージが表示されます。

5.Raspberry Pi OSの起動とログイン

OSインストールが終わった microSDXCカードを model 3Bに挿して、有線 LANケーブルと電源の microUSBケーブルを接続します。
OSが起動するまで 1、2分待って、Windows PCのコマンドライン(パワーシェル)から「arp -a」とコマンドを打ちます。
ウチの model 3Bは物理アドレスが b8-27-ebで始まる(dc-a6-32で始まる物もあるらしい)ので、有線LANルーターの DHCPで model 3Bに割り振られた IPアドレスを特定します。
TeraTermなどのターミナルソフトで先ほど調べた IPアドレスに ssh接続して、Raspberry Pi Imagerで設定したユーザー、パスワードでログインします。

6.諸々の設定

最初にブートログですが、以下のコマンドで見ることができます。

$ journalctl -b

スペースキーでページ送りして、最後は Ctrl-Cで終了させます。
問題がないことを確認したら、次にパッケージのアップデート&アップグレード。

$ sudo apt update
$ sudo apt upgrade

vim(vi)も、NTFSフォーマットのディスクを読み書きするための ntfs-3gも、標準でインストールされているので追加する必要はありません。

NTPをインストール。

$ sudo apt -y install ntp

/etc/ntp.confを編集します。

$ sudo cp /etc/ntp.conf ntp.conf.org
$ sudo vi /etc/ntp.conf
 
# pool 0.debian.pool.ntp.org iburst
# pool 1.debian.pool.ntp.org iburst
# pool 2.debian.pool.ntp.org iburst
# pool 3.debian.pool.ntp.org iburst
pool ntp.nict.jp iburst

NTPを再起動します。

$ sudo service ntp restart

念のため RF-killされていないか確認します。

$ rfkill list
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
1: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no

上記のようになっていれば OK。
もし Wireless LANが Soft blocked: yesになっていたら、起動時に WiFiのブロックを解除させるため /etc/rc.localにコマンドを追加する。

$ sudo rfkill unblock all
$ sudo vi /etc/rc.local
 
rfkill unblock all

ネットワーク・インターフェースを確認します。 wlan0に家庭内ルーターの DHCPから IPアドレスが付与されていることを確認する。

$ ifconfig -a

WiFiを固定 IPアドレス化するために、/etc/dhcpcd.confの最下行に以下の記述を追加して再起動します。
あとでアクセスポイント化しますが、この時点ではこれでよいです。

$ sudo cp /etc/dhcpcd.conf dhcpcd.conf.org
$ sudo vi /etc/dhcpcd.conf
 
interface wlan0
static ip_address=192.168.2.1/24
 
$ sudo reboot

再起動したら、再びネットワーク・インターフェースを確認して wlan0の IPアドレスが指定したものになっていることを確認する。

$ ifconfig wlan0
wlan0: flags=4163  mtu 1500
        inet 192.168.2.1  netmask 255.255.255.0  broadcast 192.168.2.255
        (中略)
        RX packets 687  bytes 34697 (33.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 36  bytes 5296 (5.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

/boot/config.txtの最下行に以下の記述を追加する。

$ sudo vi /boot/config.txt
 
dtparam=pwr_led_trigger=heartbeat

本体のパワーランプ(赤)が点滅しているときは起動中、常時点灯は通電(システムOFF)となる。

7.sambaのインストール

共有ディレクトリ /shareの作成。 SSDと HDDを接続する予定があるので、サブディレクトリも作ります。

$ sudo mkdir /share
$ sudo chmod 777 /share
$ sudo mkdir /share/ssd
$ sudo chmod 777 /share/ssd
$ sudo mkdir /share/hdd
$ sudo chmod 777 /share/hdd

sambaを入れたあと、設定ファイルを編集します。

$ sudo apt install samba samba-common-bin
$ sudo cp /etc/samba/smb.conf smb.conf.org

SMBのプロトコルなどは [global]の真下に追加します。

$ sudo vi /etc/samba/smb.conf
 
[global]
min protocol = SMB2 
max protocol = SMB3 
dos charset = CP932
unix charset = UTF-8

共有の設定は /etc/samba/smb.confの最下行に追加します。
ゲスト接続はさすがに不用心なので禁止。
「valid users」で指定したユーザー (USER)のみ接続できるようにします。 この (USER)は Raspberry Pi OSのユーザーである必要があります。 他に作っていなければ、OSインストール時に作成したユーザーを指定します。

/shareでまとめて共有してしまうと、Windowsからコピーしようとすると sambaが /shareディレクトリがある microSDXCカードの空き容量を元に回答するので、SSDや HDDに空きがたっぷりあっても「shareに十分な領域がありません」と拒否されてしまいます。
よって SSDや HDDのマウントポイントで個別に共有設定を作ります。

[ssd]
comment = share ssd
writable = yes
available = yes
valid users = (USER)
path = /share/ssd
guest ok = no
guest only = no
create mode = 0777
directory mode = 0777
share mode = yes
 
[hdd]
comment = share hdd
writable = yes
available = yes
valid users = (USER)
path = /share/hdd
guest ok = no
guest only = no
create mode = 0777
directory mode = 0777
share mode = yes

sambaのユーザー (USER)にパスワードを設定します。

$ sudo smbpasswd -a (USER)
New SMB password:
Retype new SMB password:
Added user webadmin.

サービスを再起動して稼働確認。

$ sudo service smbd restart
$ sudo smbstatus -d


8.DHCPサーバーの導入

DHCPサーバーをインストールします。

$ sudo apt install isc-dhcp-server

dhcpd.confを編集します。
optionの2行をコメントアウト。
authoritative;は逆に行頭の「#」を取ります。
最下行に subnet以下の行を追加します。

$ sudo cp /etc/dhcp/dhcpd.conf dhcpd.conf.org
$ sudo vi /etc/dhcp/dhcpd.conf
 
#option domain-name ... 
#option domain-name-servers ...
 
authoritative;
 
subnet 192.168.2.0 netmask 255.255.255.0 { 
range 192.168.2.10 192.168.2.50; 
option broadcast-address 192.168.2.255; 
option routers 192.168.2.1; 
default-lease-time 600; 
max-lease-time 7200; 
#option domain-name "local"; 
#option domain-name-servers 8.8.8.8, 8.8.4.4; 
}

設定ファイルに間違いがないか確認します。

$ sudo dhcpd -cf /etc/dhcp/dhcpd.conf -t

/etc/default/isc-dhcp-server を編集します。

$ sudo vi /etc/default/isc-dhcp-server
 
INTERFACESv4="wlan0"

DHCPサーバーが起動するか確認します。

$ sudo service isc-dhcp-server start

OKなら再起動します。 OS起動時にサービスの自動実行する登録は isc-dhcp-serverのインストール時に行われているので別途必要ありません。

$ sudo reboot
再起動したら、DHCPサーバーが稼働しているか確認します。
$ /etc/init.d/isc-dhcp-server status
● isc-dhcp-server.service - LSB: DHCP server
     Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
     Active: active (running) since Sun 2022-06-26 10:31:42 JST; 5min ago
       Docs: man:systemd-sysv-generator(8)
    Process: 599 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=0/SUCCESS)
      Tasks: 4 (limit: 780)
        CPU: 189ms
     CGroup: /system.slice/isc-dhcp-server.service
             mq618 /usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf wlan0
 
Jun 26 10:31:39 raspinas systemd[1]: Starting LSB: DHCP server...
Jun 26 10:31:39 raspinas isc-dhcp-server[599]: Launching IPv4 server only.
Jun 26 10:31:40 raspinas dhcpd[618]: Wrote 0 leases to leases file.
Jun 26 10:31:40 raspinas dhcpd[618]: Server starting service.
Jun 26 10:31:42 raspinas isc-dhcp-server[599]: Starting ISC DHCPv4 server: d…pd.
Jun 26 10:31:42 raspinas systemd[1]: Started LSB: DHCP server.
Hint: Some lines were ellipsized, use -l to show in full.

大丈夫みたいです。 ここをクリアするまでが大変でした。
DHCPサーバーの起動タイミングを 10秒遅らせたい場合は、/etc/init.d/isc-dhcp-serverの log_daemon_msgの行の下に「sleep 10」などと追加します。

$ sudo vi /etc/init.d/isc-dhcp-server
 
test_config "$VERSION" "$CONF"
log_daemon_msg "Starting $DESC" "$NAME"
sleep 10


9.WiFiアクセスポイント化

ソフトウェアアクセスポイント(hostapd)をインストールします。

$ sudo apt install hostapd

hostapdの設定ファイル /etc/hostapd/hostapd.confを新規作成します。
(SSID)と (PASSWORD)は適当に置き換えてください。
「=」の前後にスペースは入れないように。
ランダムな WiFiパスワードを得るには、パスワード生成サービスを使うと便利です。

$ sudo vi /etc/hostapd/hostapd.conf
 
interface=wlan0
driver=nl80211
ieee80211n=1
ssid=(SSID)
hw_mode=g
channel=4
country_code=JP
wmm_enabled=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
#rsn_pairwise=CCMP
wpa_passphrase=(PASSWORD)

「ignore_broadcast_ssid」はSSIDのブロードキャストを行うか否かの設定で、1だとSSIDが秘匿化されます。
全ての設定が終わったら有効化(秘匿化)します。

/etc/default/hostapdを編集して、コメントアウトされている「DAEMON_CONF」の行頭の「#」を削除して、以下のように変更します。

$ sudo vi /etc/default/hostapd 
 
DAEMON_CONF="/etc/hostapd/hostapd.conf"

ここで再度 /etc/dhcpcd.confを編集して、最下行に「nohook wpa_supplicant」を追加します。
WiFiクライアントとしての動作を無効化するもので、これを指定しないとアクセスポイント化しても電波が発射されません。
hostapdを動かす直前のこのタイミングで行うのが大切です。

$ sudo vi /etc/dhcpcd.conf
 
interface wlan0
static ip_address=192.168.2.1/24
nohook wpa_supplicant

それでは hostapdを起動してみます。

$ sudo hostapd /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
Using interface wlan0 with hwaddr b8:27:eb:xx:xx:xx and ssid "(SSID)"
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED

大丈夫なら再起動します。

$ sudo reboot

hostapdサービスの状態を確認します。 サービスはインストーラーによって登録されているはずですが...

$ sudo service hostapd status
● hostapd.service
     Loaded: masked (Reason: Unit hostapd.service is masked.)
     Active: inactive (dead)

死んでますね(白目)。 マスクされているので、systemctlコマンドで改めて有効化します。

$ sudo systemctl unmask hostapd
Removed /etc/systemd/system/hostapd.service.
$ sudo systemctl enable hostapd
Synchronizing state of hostapd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable hostapd
$ sudo systemctl start hostapd

再度 hostapdサービスのステータスを確認。

$ sudo service hostapd status
● hostapd.service - Access point and authentication server for Wi-Fi and Ethernet
     Loaded: loaded (/lib/systemd/system/hostapd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-06-26 13:48:55 JST; 3s ago
       Docs: man:hostapd(8)
    Process: 777 ExecStart=/usr/sbin/hostapd -B -P /run/hostapd.pid -B $DAEMON_OPTS ${DAEMON_CONF} (code=exited, status=0/SUCCESS)
   Main PID: 786 (hostapd)
      Tasks: 1 (limit: 780)
        CPU: 81ms
     CGroup: /system.slice/hostapd.service
             mq786 /usr/sbin/hostapd -B -P /run/hostapd.pid -B /etc/hostapd/hostapd.conf
 
Jun 26 13:48:55 raspinas systemd[1]: Starting Access point and authentication server for Wi-Fi and Ethernet...
Jun 26 13:48:55 raspinas hostapd[777]: Configuration file: /etc/hostapd/hostapd.conf
Jun 26 13:48:55 raspinas hostapd[777]: wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE
Jun 26 13:48:55 raspinas hostapd[777]: Using interface wlan0 with hwaddr b8:27:eb:xx:xx:xx and ssid "(SSID)"
Jun 26 13:48:55 raspinas hostapd[777]: wlan0: interface state COUNTRY_UPDATE->ENABLED
Jun 26 13:48:55 raspinas hostapd[777]: wlan0: AP-ENABLED
Jun 26 13:48:55 raspinas systemd[1]: Started Access point and authentication server for Wi-Fi and Ethernet.

今度は大丈夫そうですね。
ちなみに systemdに登録されている全てのサービスの状態を一覧するには、

$ sudo systemctl list-unit-files

で表示できます。

10.SSDのマウント

手持ちの SSDを model3Bの USBポートに接続してみました。 ログを確認してみます。

$ journalctl -b
 
(中略)
Jun 26 13:56:34 raspinas kernel: scsi 0:0:0:0: Direct-Access     ASMT     2135             0    PQ: 0 ANSI: 6
Jun 26 13:56:34 raspinas kernel: sd 0:0:0:0: Attached scsi generic sg0 type 0
Jun 26 13:56:34 raspinas kernel: sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
Jun 26 13:56:34 raspinas kernel: sd 0:0:0:0: [sda] Write Protect is off
Jun 26 13:56:34 raspinas kernel: sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
Jun 26 13:56:34 raspinas kernel: sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jun 26 13:56:37 raspinas kernel:  sda: sda1 sda2
Jun 26 13:56:37 raspinas kernel: sd 0:0:0:0: [sda] Attached SCSI disk

ちゃんと認識はされているようです。 fdiskで見てみると、

$ sudo fdisk -l
 
Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: 2135
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1679A086-49BD-4F5E-8684-E5F6B8793DB2
 
Device     Start        End    Sectors   Size Type
/dev/sda1     34      32767      32734    16M Microsoft reserved
/dev/sda2  32768 1953521663 1953488896 931.5G Microsoft basic data

gptのパーテーションが 2つあって、データが入っているのは /dev/sda2の方ですね。
sambaのインストールのときに作った共有用のディレクトリ /shareの下に ssdと hddの 2つのディレクトリを作成します。

$ sudo mkdir /share/ssd
$ sudo mkdir /share/hdd
$ sudo chmod 777 /share/ssd
$ sudo chmod 777 /share/hdd

試しに手動でマウントしてみます。

$ sudo mount /dev/sda2 /share/ssd
$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/root        7460240   1611720   5511388  23% /
devtmpfs          332832         0    332832   0% /dev
tmpfs             465792         0    465792   0% /dev/shm
tmpfs             186320      2496    183824   2% /run
tmpfs               5120         4      5116   1% /run/lock
/dev/mmcblk0p1    258095     30829    227267  12% /boot
tmpfs              93156         0     93156   0% /run/user/1000
/dev/sda2      976744444 757601840 219142604  78% /mnt/ssd

ちゃんとマウントされました。
でもこのままでは面倒なので、自動でマウントさせるために autofsをインストールします。

$ sudo apt install autofs

autofsでマウントするためには、パーティションの UUIDを知る必要があります。

$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 15 Jun 26 14:28 37E2-62C3 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 15 Jun 26 14:28 6a932c1f-7335-42d9-9351-1b1b2ca538d4 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 10 Jun 26 14:28 F496AEBF96AE81AA -> ../../sda2

sda2の UUIDは F496AEBF96AE81AAですね。
/etc/auto.master.dディレクトリの下に share.autofsというファイルを新規作成し、その中に「/share /etc/auto.share」とだけ書きます。

$ echo "/share /etc/auto.share" | sudo tee /etc/auto.master.d/share.autofs

/etcディレクトリの下に auto.shareというファイルを新規作成し、その中にマッピングの設定を書き込みます。
NTFSの場合の fstypeは ntfs-3gです。

$ echo "ssd -fstype=ntfs-3g,rw  :/dev/disk/by-uuid/F496AEBF96AE81AA" | sudo tee /etc/auto.share

/shareディレクトリの下にマウントしたいディスクが複数ある場合は、複数行にマッピングの設定を書くこともできます。
例えば、

ssd -fstype=ntfs-3g,rw  :/dev/disk/by-uuid/F496AEBF96AE81AA
hdd -fstype=ntfs-3g,rw  :/dev/disk/by-uuid/F474B7AA74B76DCC

と書けば、/share/ssdと /share/hddにそれぞれオートマウントされます。
autofsサービスを有効化します。

$ sudo systemctl enable autofs --now

手動で autofsサービスを起動して、ステータスを確認します。

$ sudo systemctl start autofs
$ sudo systemctl status autofs
● autofs.service - Automounts filesystems on demand
     Loaded: loaded (/lib/systemd/system/autofs.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-06-26 17:20:53 JST; 9s ago
       Docs: man:autofs(8)
    Process: 821 ExecStart=/usr/sbin/automount $OPTIONS --pid-file /var/run/autofs.pid (code=exited, status=0/SUCCESS)
   Main PID: 822 (automount)
      Tasks: 5 (limit: 780)
        CPU: 72ms
     CGroup: /system.slice/autofs.service
             tq822 /usr/sbin/automount --pid-file /var/run/autofs.pid
             mq836 /bin/mount -t ntfs-3g -o rw /dev/disk/by-uuid/F496AEBF96AE81AA /share/ssd
 
Jun 26 17:20:53 raspinas systemd[1]: autofs.service: Succeeded.
Jun 26 17:20:53 raspinas systemd[1]: Stopped Automounts filesystems on demand.
Jun 26 17:20:53 raspinas systemd[1]: Starting Automounts filesystems on demand...
Jun 26 17:20:53 raspinas systemd[1]: Started Automounts filesystems on demand.

ちゃんとマウントされているか確認します。

$ sudo automount -m
autofs dump map information
===========================
 
global options: none configured
 
Mount point: /share
 
source(s):
 
  instance type(s): file
  map: /etc/auto.share
 
  ssd | -fstype=ntfs-3g,rw  :/dev/disk/by-uuid/F496AEBF96AE81AA

でもまだ安心はできません。 autofsはマウントポイントにアクセスがあって初めてマウントされます。
/share/ssdディレクトリの中を確認します。

$ cd /share/ssd
$ ls
'$RECYCLE.BIN'  'System Volume Information'   資料

大丈夫そうですね。
長時間お疲れ様でした。