Mount

在啟動時安裝 USB 會導致在 Pi4 上啟動時出錯

  • November 17, 2020

我試圖在啟動時將 USB 驅動器掛載到特定目錄,以便每次都映射到同一目錄。我讀了這篇文章,https://raspberrypi.stackexchange.com/questions/36824/automounting-usb-drive-on-boot,說將它添加到 /etc/fstab

proc            /proc           proc    defaults          0       0
PARTUUID=bf444af9-01  /boot           vfat    defaults          0       2
PARTUUID=bf444af9-02  /               ext4    defaults,noatime  0       1
UUID=b994a97c-027d-465e-8483-ad519866f87c /mnt/usb2 ext4 defaults,umask=000 0 0
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

我嘗試了 PARTUUID 和 UUID,兩次結果都一樣。

這是我嘗試過的:

PARTUUID=b994a97c-027d-465e-8483-ad519866f87c /mnt/usb2 ext4 defaults,umask=000 0 0
PARTUUID=fc69e031-8593-4c67-9cf9-c364d0166117 /mnt/usb2 ext4 defaults,umask=000 0 0
UUID=b994a97c-027d-465e-8483-ad519866f87c /mnt/usb2 ext4 defaults,umask=000 0 0
UUID=fc69e031-8593-4c67-9cf9-c364d0166117 /mnt/usb2 ext4 defaults,umask=000 0 0

當我重新啟動時,它給出了這個錯誤:

無法打開對控制台的訪問,root 帳戶被鎖定。

我通過修改 cmdline.txt 並添加 bash 來解決這個問題。

我做了一個blkid查看我的 USB 驅動器 UUID。這是我得到的:

pi@raspberrypi:~ $ sudo blkid
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="6284-658D" TYPE="vfat" PARTUUID="bf444af9-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="3a324232-335f-4617-84c3-d4889840dc93" TYPE="ext4" PARTUUID="bf444af9-02"
/dev/sda2: UUID="b994a97c-027d-465e-8483-ad519866f87c" TYPE="ext4" PARTLABEL="Basic data partition" PARTUUID="fc69e031-8593-4c67-9cf9-c364d0166117"
/dev/mmcblk0: PTUUID="bf444af9" PTTYPE="dos"
/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="4792d598-bd1e-4784-99a5-27db1f5d937b"

我究竟做錯了什麼?我無法讓這個 USB 驅動器在啟動時掛載到特定目錄。

請問有什麼建議嗎?

TL;DRumask=000從您的fstab條目中刪除。這不是 ext4 文件系統的有效掛載選項。該umask選項僅適用於不支持 Unix 權限的文件系統,例如 FAT 和 NTFS。

其他詳細資訊:您收到的錯誤表明系統啟動失敗,但root不允許使用密碼登錄,因此 systemd 不會啟動恢復 shell。第一步是啟動並init=/bin/bash添加到核心命令行(聽起來你已經完成了)以啟動到 root shell,然後執行passwd root以設置 root 密碼。然後重新啟動,您應該可以登錄到可用於調試的恢復 shell。

登錄到恢復 shell 後,您可以檢查日誌以查看失敗的原因。 journalctl -u mnt-usb2.mount並且journalctl -b可能是最有用的東西。您也可以嘗試使用mount /mnt/usb2. 在您的情況下,在刪除該umask選項之前,這應該會導致如下錯誤:

mount: /mnt/usb2: wrong fs type, bad option, bad superblock on /dev/sda2, missing codepage or helper program, or other error.

umask=000從條目中刪除fstab,然後再次嘗試手動安裝。很可能它會起作用。

我建議您添加nofailUSB 文件系統的選項。如果由於任何原因無法掛載文件系統,這將允許您的系統正常啟動。(如果您願意,也可以省略defaults。僅當您沒有其他選擇時才需要這樣做。)

總而言之,這是我建議您輸入的內容/etc/fstab

UUID=b994a97c-027d-465e-8483-ad519866f87c /mnt/usb2 ext4 nofail 0 0

引用自:https://unix.stackexchange.com/questions/619777