我在嵌入式设备上运行 Ubuntu 20.04。我想问一下如何在启动时强制自动进行fsck?在较旧的 Ubuntu 版本中,这可以通过编辑 /etc/default/rcS 并设置 FSCKFIX=yes 来实现。然而,我读到在较新的 Ubuntu 中,该文件不再使用。那么对于较新的 Ubuntu,如何在启动时启用自动 fsck 呢?
van*_*ium 21
自从接管初始化以来,创建文件/forcefsck
以强制重新启动时检查文件的旧的方便技巧不再起作用。systemd
更改“最大安装数”(仅限 ext 文件系统)
最快的方法可能是暂时将您的更改Maximum mount count
为1
. 这将导致内核并e2fsck
在下次重新启动时检查文件系统。但是,这只适用于 ext 文件系统。
首先检查您当前的设置,以防稍后想要恢复为默认设置:
sudo tune2fs -l /dev/nvme0n1p2 | grep 'Maximum mount'
Run Code Online (Sandbox Code Playgroud)
替换/dev/nvme0n1p2
为系统分区的设备名称。现在可能会设置为-1
禁用基于卷安装次数的检查。
1
使用命令将设置调整为:
sudo tune2fs -c 1 /dev/nvme0n1p2
Run Code Online (Sandbox Code Playgroud)
现在重新启动 - 应检查音量。重启后,应将值重置为之前的值,以避免每次都检查分区。
更改内核参数
另一种方法是在引导期间传递控制systemd 服务进行文件系统检查的内核参数。将强制进行文件检查。fsck.mode=force
要一次性添加内核参数,请引导至 Grub 菜单,突出显示该条目并点击e。移动到以 开头的行linux
,点击End移动到最后一行,添加一个空格和内核参数。按Ctrl+x关闭并继续启动。
如果您想在每次重新启动时强制进行 fsck,则需要遵循几个步骤。
blkid
识别分区的 uuid。amarcus@amarcus-desktop:~$ blkid
/dev/mapper/vgubuntu-swap_1: UUID="d24b0766-c9be-49ef-9022-8ccae4f79801" TYPE="swap"
/dev/mapper/vgubuntu-root: UUID="d414c4f9-da0d-42bf-8290-4bcb55b8d984" BLOCK_SIZE="4096" TYPE="ext4"
amarcus@amarcus-desktop:~$
Run Code Online (Sandbox Code Playgroud)
/etc/fstab
amarcus@amarcus-desktop:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/vgubuntu-root / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=0AE0-795B /boot/efi vfat umask=0077 0 1
/dev/mapper/vgubuntu-swap_1 none swap sw 0 0
UUID=D41C-2F17 /mnt/WDElements auto umask=0022,gid=1000,uid=1000,x-gvfs-show 0 0
Run Code Online (Sandbox Code Playgroud)
最后一列是第 6 列,又名 fsck PASS 列,fsck 使用它来确定 fsck 是否应在安装文件系统之前检查文件系统,以及应按什么顺序检查 /etc/fstab 中的给定分区
对于根分区,请确保该条目设置为 1
root@amarcus-desktop:~# tune2fs -c 1 /dev/mapper/vgubuntu-root
Run Code Online (Sandbox Code Playgroud)
解释:
基本上,在步骤 1 中,您将确定要在启动时检查哪个分区。
在步骤 2 中,您要确保它具有更高的优先级。如果您要检查多个分区,这一点很有用。它决定应该首先处理哪一个,然后是第二个,依此类推。
在步骤 3 中,您表示应在安装多少次后检查分区。参数 1 指定在安装一次后应检查分区。所以基本上它会在每次安装后(即每次重新启动后)进行检查。
归档时间: |
|
查看次数: |
34661 次 |
最近记录: |