[Seek Help] 怎么在自动挂载移动硬盘的时候加参数
Tofloor
poster avatar
132******79
deepin
2025-02-10 17:56
Author

通过USB连接的硬盘盒有两块机械硬盘,连接好后,系统会自动挂载磁盘。这时候直接传文件过进去,会发现速度只有20M。卸载磁盘,然后用mount命令加参数noatime命令,再次传文件速度可以达到100M以上。我不想每次都敲这个命令,也不想修改/etc/fstab文件(移动硬盘不是一直连在电脑USB口的),有没有什么办法让系统挂载USB接口硬盘的时候自动加参数noatime?

Reply Favorite View the author
All Replies
raspbian
deepin
2025-02-10 18:34
#1

问AI就行

主人,想要自动挂载USB硬盘并加上 noatime参数,可以试试udev规则喵!这样就不用每次都敲命令啦,也不用修改 fstab文件哦喵~

  1. 创建udev规则文件:

    创建一个新的udev规则文件,比如 99-usb-hdd-noatime.rules,放在 /etc/udev/rules.d/目录下喵。

    sudo nano /etc/udev/rules.d/99-usb-hdd-noatime.rules
    
  2. 编辑规则文件:

    在文件中添加如下内容喵:

    ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem", ENV{ID_TYPE}=="ata", RUN+="/bin/mount -o remount,noatime $devnode"
    

    这里解释一下喵:

    • ACTION=="add": 当设备被添加时触发。
    • SUBSYSTEM=="block": 针对块设备。
    • ENV{ID_FS_USAGE}=="filesystem": 确保是文件系统。
    • ENV{ID_TYPE}=="ata": 确保是ATA设备 (如果你的硬盘盒是SCSI/SAS/USB之类的,可能需要调整这个条件).
    • RUN+="/bin/mount -o remount,noatime $devnode": 重新挂载设备,加上 noatime参数。

    如果你不确定 ENV{ID_TYPE}应该是什么,可以先用 udevadm info -a -n /dev/sda1(把 /dev/sda1替换成你的硬盘设备节点)查看设备信息,找到合适的 ID_TYPE或者其他能唯一标识你的USB硬盘的属性喵。

  3. 保存并退出:

    保存文件并退出编辑器喵。

  4. 重新加载udev规则:

    运行以下命令重新加载udev规则喵:

    sudo udevadm control --reload-rules
    sudo udevadm trigger
    
  5. 测试:

    拔下USB硬盘,再重新插上,看看是不是自动挂载并加上 noatime参数了喵!你可以用 mount命令查看挂载选项喵:

    mount | grep /dev/sda1
    

    如果看到 noatime在挂载选项里,就说明成功啦喵!

注意:

  • 如果你的硬盘盒不是ATA设备,可能需要修改 ENV{ID_TYPE}的条件喵。
  • 如果有多块USB硬盘,并且你只想对特定的硬盘启用 noatime,可以在规则里添加更具体的匹配条件,比如通过 ID_SERIAL或者 ID_VENDOR等属性来区分喵。

这样设置之后,每次插入USB硬盘,系统就会自动加上 noatime参数啦喵!希望对主人有帮助哦喵~

Reply View the author
132******79
deepin
2025-02-10 23:29
#2
raspbian

问AI就行

主人,想要自动挂载USB硬盘并加上 noatime参数,可以试试udev规则喵!这样就不用每次都敲命令啦,也不用修改 fstab文件哦喵~

  1. 创建udev规则文件:

    创建一个新的udev规则文件,比如 99-usb-hdd-noatime.rules,放在 /etc/udev/rules.d/目录下喵。

    sudo nano /etc/udev/rules.d/99-usb-hdd-noatime.rules
    
  2. 编辑规则文件:

    在文件中添加如下内容喵:

    ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="filesystem", ENV{ID_TYPE}=="ata", RUN+="/bin/mount -o remount,noatime $devnode"
    

    这里解释一下喵:

    • ACTION=="add": 当设备被添加时触发。
    • SUBSYSTEM=="block": 针对块设备。
    • ENV{ID_FS_USAGE}=="filesystem": 确保是文件系统。
    • ENV{ID_TYPE}=="ata": 确保是ATA设备 (如果你的硬盘盒是SCSI/SAS/USB之类的,可能需要调整这个条件).
    • RUN+="/bin/mount -o remount,noatime $devnode": 重新挂载设备,加上 noatime参数。

    如果你不确定 ENV{ID_TYPE}应该是什么,可以先用 udevadm info -a -n /dev/sda1(把 /dev/sda1替换成你的硬盘设备节点)查看设备信息,找到合适的 ID_TYPE或者其他能唯一标识你的USB硬盘的属性喵。

  3. 保存并退出:

    保存文件并退出编辑器喵。

  4. 重新加载udev规则:

    运行以下命令重新加载udev规则喵:

    sudo udevadm control --reload-rules
    sudo udevadm trigger
    
  5. 测试:

    拔下USB硬盘,再重新插上,看看是不是自动挂载并加上 noatime参数了喵!你可以用 mount命令查看挂载选项喵:

    mount | grep /dev/sda1
    

    如果看到 noatime在挂载选项里,就说明成功啦喵!

注意:

  • 如果你的硬盘盒不是ATA设备,可能需要修改 ENV{ID_TYPE}的条件喵。
  • 如果有多块USB硬盘,并且你只想对特定的硬盘启用 noatime,可以在规则里添加更具体的匹配条件,比如通过 ID_SERIAL或者 ID_VENDOR等属性来区分喵。

这样设置之后,每次插入USB硬盘,系统就会自动加上 noatime参数啦喵!希望对主人有帮助哦喵~

试过了,没成功。还问了好几个不同的AI,大同小异,都不成功。

Reply View the author
raspbian
deepin
2025-02-11 09:10
#3
132******79

试过了,没成功。还问了好几个不同的AI,大同小异,都不成功。

那就fstab多加一个nofailed参数呗

Reply View the author
[^_^]
deepin developers team
2025-02-13 09:24
#4

目前暂时没办法,自动挂载都是使用默认的参数。想额外添加参数还是只能卸载后手动挂载并显式指定参数。

Reply View the author