Antonio Petricca Asked: 2018-01-01 07:09:38 +0800 CST2018-01-01 07:09:38 +0800 CST 2018-01-01 07:09:38 +0800 CST 回送设备的启动时 Fsck 772 我发现无法通过文件中的标志fsck在启动时在回送设备上运行,也无法通过在安装回送设备时手动运行来完成此操作。fsckfstabfsck 是否有替代方法可以在启动时检查设备? fsck fstab 2 个回答 Voted cas 2018-01-02T04:19:57+08:002018-01-02T04:19:57+08:00 关键短语是“安装循环设备时”。您可以fsck在未安装的环回设备上运行。 换句话说,您可以运行losetup创建环回块设备并将其附加到相关文件,然后运行fsck它,然后运行mount它。 当然,这可以编写脚本。如果环回挂载被标记,您甚至可以在/etc/rc.local或类似的情况下执行此操作 - 然后为每个环回 fs in 执行 losttup/fsck/mount 。noauto/etc/fstab/etc/fstab 请注意,这是对标志的一种滥用,noauto因为环回文件系统最终将被自动挂载。注释掉您不想自动挂载的任何环回文件系统。 或者,您可以修改mount -a系统上运行的任何代码(systemd、sysvinit shell 脚本或其他),以便它运行mount -a -tnoloop,这样环回文件系统永远不会像其他文件系统一样自动挂载。然后可以编写执行 losttup/fsck/mount 的脚本以尊重该noauto标志(如果存在)。 Best Answer Antonio Petricca 2018-01-03T23:44:45+08:002018-01-03T23:44:45+08:00 我找到了一个优雅可靠的解决方案。 我已经为“/etc/initramfs-tools/scripts/local-premount/”启动阶段编写了一个脚本,以便在文件系统安装之前处理我的循环磁盘。 详情如下: 在/etc/initramfs-tools/scripts/local-premount/中创建脚本。 通过命令update-initramfs -u更新initrd.img。 这是脚本源: #!/bin/sh # Antonio Petricca <[email protected]> - 03/01/2018 PREREQ="" # Output pre-requisites prereqs() { echo "$PREREQ" } case "$1" in prereqs) prereqs exit 0 ;; esac . /scripts/functions log_begin_msg "Running file system check on loop device(s)" DEV=/dev/sdb5 MNT=/tmp/mnt LOOP=$MNT/.linux-loops/242eef08-32d6-42c2-93eb-afdc2111a13e.ext4 mkdir $MNT && \ mount -t ntfs $DEV $MNT && \ fsck.ext4 -p -v $LOOP && \ umount $MNT # Uncomment next line to hold messages for debugging # sleep 10 log_end_msg "Done" # Continue boot anyway exit 0 问候!
关键短语是“安装循环设备时”。您可以
fsck
在未安装的环回设备上运行。换句话说,您可以运行
losetup
创建环回块设备并将其附加到相关文件,然后运行fsck
它,然后运行mount
它。当然,这可以编写脚本。如果环回挂载被标记,您甚至可以在
/etc/rc.local
或类似的情况下执行此操作 - 然后为每个环回 fs in 执行 losttup/fsck/mount 。noauto
/etc/fstab
/etc/fstab
请注意,这是对标志的一种滥用,
noauto
因为环回文件系统最终将被自动挂载。注释掉您不想自动挂载的任何环回文件系统。或者,您可以修改
mount -a
系统上运行的任何代码(systemd、sysvinit shell 脚本或其他),以便它运行mount -a -tnoloop
,这样环回文件系统永远不会像其他文件系统一样自动挂载。然后可以编写执行 losttup/fsck/mount 的脚本以尊重该noauto
标志(如果存在)。我找到了一个优雅可靠的解决方案。
我已经为“/etc/initramfs-tools/scripts/local-premount/”启动阶段编写了一个脚本,以便在文件系统安装之前处理我的循环磁盘。
详情如下:
这是脚本源:
问候!