在 /etc/fstab 中使用 UUID 挂载 ext4

在 /etc/fstab 中使用 UUID 挂载 ext4

我正在尝试将 USB 拇指驱动器安装到我的路由器上。

我的 USB 拇指驱动器是 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

[为了提高可读性,间距已被修改。]

请指教并谢谢

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

后续评论如下:

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

作为由亚伦·马拉斯科 (Aaron D. Marasco) 建议,我auto改为ext4

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

还是没有运气。df与之前的结果相同

这是输出ps根据 Hauke Laging 的要求。 (路由器的 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 -amount /test并且 sda2 将被安装到/test,如何使用 udev 规则永久安装?

在我的路由器上,我不知道运行 udev 规则(找不到任何 udev.conf ),因此我使用运行脚本进行测试mount /test/etc/rc.local重新启动路由器,但仍然无法安装, /test 然后我sleep 20在脚本中添加延迟并通过重新启动进行测试路由器,并且正在工作,现在自动安装/测试!谢谢你们

答案1

在 SystemD 系统上,/etc/fstab其中列出的设备在引导时不存在但稍后出现,会自动安装。其他系统不会这样做(至少不是全部)。

mount /test因此,您需要在设备可用时触发呼叫的功能。这可以通过 udev 规则 ( RUN=) 来完成。

答案2

也许你可以尝试:

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

如果有错误,应该让任何错误显示并挂载为只读。

相关内容