Fstab

在 /etc/fstab 中使用 UUID 掛載 ext4

  • August 4, 2020

我正在嘗試將 USB 拇指驅動器安裝到我的路由器。

我的 U 盤是 32GB,分為兩個分區:

16GB NTFS 和 16GB ext4。

16GB NTFS 分區將在路由器中自動檢測為 sda1,並預設安裝到 /mnt/sda1 和 /tmp/ftp/Volume_A1。

16GB ext4 在路由器中自動檢測為 sda2 但尚未安裝。

所以我想將 sda2 掛載到 /test

這些我做了什麼:

  1. mount /dev/sda2 /test <====== sda2 將掛載到 /test,但在路由器重啟後消失
  2. /dev/sda2添加如下的 UUID/etc/fstab以將其安裝在/test

.<========== 我檢查df 從未安裝過,請參見下文

root@router:/# blkid
/dev/sda2: UUID="14a0f0f0-27ac-4101-8d11-3057f10d1385" TYPE="ext4"
/dev/sda1: LABEL="usbdata" UUID="23D9FBBC72AB064E" TYPE="ntfs"
/dev/ubi1_0: UUID="9c7f4c41-289f-4c49-8036-3698b24c7687" TYPE="ubifs"
/dev/ubi0_0: UUID="66fa53a5-cc19-454d-b1a4-6a691051fb9e" TYPE="ubifs"

/dev/sda2我添加了(上面列出的)的 UUID/etc/fstab以將其安裝在/test

root@router:/# nano /etc/fstab 

# fstab file - used to mount file systems
proc            /proc                proc       defaults                        0   0
tmpfs           /var                 tmpfs      size=420k,noexec                0   0
tmpfs           /mnt                 tmpfs      size=16k,noexec                 0   0
tmpfs           /dev                 tmpfs      size=64k,mode=0755,noexec       0   0
sysfs           /sys                 sysfs      defaults                        0   0

debugfs         /sys/kernel/debug    debugfs    nofail                          0   0

mtd:bootfs      /bootfs              jffs2      ro                              0   0
UUID=14a0f0f0-27ac-4101-8d11-3057f10d1385  /test   auto   nosuid,nodev,nofail   0   0
root@router:/# df
Filesystem           1K-blocks      Used Available Use% Mounted on
ubi:rootfs_ubifs         44840     38760      6080  86% /
mtd:bootfs                4480      3440      1040  77% /bootfs
mtd:data                  4096       464      3632  11% /data
ubi1:tp_data              4584       844      3472  20% /tp_data
ubi:rootfs_ubifs         44840     38760      6080  86% /tmp/root
/dev/sda1             15452156     84620  15367536   1% /mnt/sda1
/dev/sda1             15452156     84620  15367536   1% /tmp/ftp/Volume_A1

$$ Spacing has been modified in an attempt to increase readability. $$

請指教並謝謝

===========================================================================

跟進評論如下:

===========================================================================

正如Aaron D. Marasco 所建議的,我auto改為ext4

UUID=14a0f0f0-27ac-4101-8d11-3057f10d1385  /test   ext4   nosuid,nodev,nofail   0   0

仍然沒有運氣。df和以前一樣的結果

這是Hauke Laging 要求ps的輸出。(路由器的 Busybox 無法辨識該 選項。)-p

root@router:/# ps -o pid,args

PID   COMMAND
   1 init
   2 [kthreadd]
   3 [ksoftirqd/0]
   4 [kworker/0:0]
   5 [kworker/0:0H]
   6 [kworker/u4:0]
   7 [rcu_preempt]
   8 [rcu_sched]
   9 [rcu_bh]
  10 [migration/0]
  11 [migration/1]
  12 [ksoftirqd/1]
  14 [kworker/1:0H]
  15 [khelper]
 122 [writeback]
 125 [ksmd]
 126 [crypto]
 127 [bioset]
 129 [kblockd]
 151 [skbFreeTask]
 152 [bcmFapDrv]
 173 [kswapd0]
 174 [fsnotify_mark]
 294 [cfinteractive]
 344 [kworker/1:1]
 351 [linkwatch]
 352 [ipv6_addrconf]
 357 [deferwq]
 362 [ubi_bgt0d]
 926 [jffs2_gcd_mtd2]
 947 [ubi_bgt1d]
 962 [ubifs_bgt1_0]
1039 [bcmFlwStatsTask]
1113 [kworker/1:2]
1137 {rcS} /bin/sh /etc/init.d/rcS S boot
1139 init
1140 logger -s -p 6 -t sysinit
1286 /sbin/klogd
1540 /sbin/hotplug2 --override --persistent --set-rules-file /etc/hotplug2.rul
1550 /usr/sbin/logd -C 128
1555 /sbin/ubusd
1558 {S12ledctrl} /bin/sh /etc/rc.common /etc/rc.d/S12ledctrl boot
1560 /usr/bin/ledctrl
1627 [bcmsw_rx]
1629 [bcmsw]
1636 [pdc_rx]
1649 /bin/swmdk
1766 /sbin/netifd
4265 [dhd_watchdog_th]
4272 [wfd0-thrd]
4425 [check_task]
4493 [kworker/0:2]
4559 [scsi_eh_0]
4562 [scsi_tmf_0]
4568 [usb-storage]
4917 [kworker/u4:2]
4919 [kworker/1:1H]
5039 /usr/sbin/imbd
5207 /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf
5219 [ telnetDBGD ]
5220 [ acktelnetDBGD ]
5243 [NU TCP]
5248 [NU UDP]
5356 eapd
5369 nas
5395 wps_monitor
6095 acsd
7008 /usr/sbin/mcud
7592 /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
7598 {S50postcenter} /bin/sh /etc/rc.common /etc/rc.d/S50postcenter boot
7600 /usr/sbin/postcenter
7612 /usr/sbin/sysmond
7620 {S50tmpServer} /bin/sh /etc/rc.common /etc/rc.d/S50tmpServer boot
7622 /usr/bin/tmpServer
7626 /usr/sbin/tsched
7628 /usr/bin/tmpServer
7777 /usr/bin/client_mgmt
8350 /usr/sbin/ntpd -n -p time.nist.gov -p time-nw.nist.gov -p time-a.nist.gov
8398 [ubifs_bgt0_0]
8403 /usr/bin/cloud-https
8639 {S99switch_led} /bin/sh /etc/rc.common /etc/rc.d/S99switch_led boot
8644 /usr/bin/switch_led
8758 /usr/bin/tm_shn -b start
8948 [tntfsiupdated]
9217 /usr/sbin/smbd -D
9219 /usr/sbin/nmbd -D
9264 proftpd: (accepting connections)
9279 udhcpc -p /var/run/udhcpc-eth0.pid -s /lib/netifd/dhcp.script -O 33 -O 12
9330 /usr/sbin/minidlnad -f /tmp/minidlna.conf -P /var/run/minidlnad.pid
9533 /usr/sbin/crond -c /etc/crontabs -l 5
9568 {dnsproxy_deamon} /bin/sh /usr/lib/dnsproxy/dnsproxy_deamon.sh
9974 /usr/sbin/improxy -c /etc/improxy.conf -p /tmp/improxy.pid
10122 /usr/sbin/miniupnpd -f /var/etc/miniupnpd.conf
10332 /usr/bin/cloud-brd -c /etc/cloud_config.cfg
10341 /usr/bin/cloud-client
10778 {lic-setup.sh} /bin/sh ./lic-setup.sh
10783 ./gen_lic
11185 {tcd_monitor.sh} /bin/sh ./tcd_monitor.sh
11186 {dc_monitor.sh} /bin/sh ./dc_monitor.sh
11187 {wred-setup.sh} /bin/sh ./wred-setup.sh
11200 ./tcd
11204 ./dcd -i 1800 -p 43200 -S 4 -b
11217 ./wred -B
11241 {clean-cache.sh} /bin/sh ./clean-cache.sh
11244 /usr/bin/tm_shn -t start
15903 sh /lib/deleteTmSigToken.sh 86400
15906 sleep 86400
19612 /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
19771 -ash
19884 sleep 600
21950 sleep 30
22135 sleep 5
22137 sleep 5
22158 sleep 5
22160 sleep 5

作為 Hauke Laging 的回答。聽起來不錯,我做mount -aormount /test和 sda2 將被掛載到/test ,如何使用 udev 規則永久掛載?

在我的路由器上,我不知道執行 udev 規則(找不到任何 udev.conf),所以我使用執行腳本mount /test進行測試/etc/rc.local,重新啟動路由器但仍然不會安裝 /test 然後我添加sleep 20延遲腳本並通過重新啟動測試路由器,並且正在工作,現在自動安裝/測試!謝謝你們

在 SystemD 系統中列出的/etc/fstab在引導時不存在但稍後出現的設備會自動掛載。其他系統不這樣做(至少不是全部)。

因此,您需要在設備可用時觸發mount /test呼叫的東西。這可以通過 udev 規則 ( RUN=) 來完成。

也許您可以嘗試:

UID=14a0f0f0-27ac-4101-8d11-3057f10d1385  /test errors=remount-ro,user,noatime 0 2

如果有錯誤,這應該讓任何錯誤顯示並以只讀方式安裝。

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