我对 fsck 实用程序有基本的了解,但是 /etc/fstab 中的“fsck”部分表示什么?它有值 0, 1, 2 这些值是什么?
谷歌搜索说 0- 不会被检查 1- 将在启动时检查 2- 现在是什么?
我正在尝试使用 /forcefsck 在启动时运行一次磁盘检查,但我想传递一些 FSCK 选项,例如 y、c、f 和 v。我曾尝试将这些选项插入文件中,但我似乎别理他们。有没有办法做到这一点?
Debian,安装在 SSD 磁盘上。在系统启动时出错:
ROOT: UNEXPECTED INCONSISTENCY; RUN fsck manually
(i.e. without -a or -p options)
fsck exited with status code 4.
The root filesystem on /dev/sda2 requires a manual fsck.
BysyBox v.1.22.1 (Debian 1:1.22.0-19+deb9u2) built-in shell (ash)
Enter 'help' to a list of built-in commands
(initramfs) sudo umount /dev/sda2
sh: sudo: not found
(initramfs)
Run Code Online (Sandbox Code Playgroud)
我先尝试卸载磁盘,但命令失败。这个错误有多严重,我应该运行哪些命令?这个错误难道不是 SSD 磁盘故障前的症状吗?
有时我的 Web 服务器会崩溃,并且可能需要几个小时才能启动。有人告诉我fsck可能是罪魁祸首,因为它只能在启动期间运行,只能在 X 天和 Y 次挂载后运行,如果服务器启动了很长时间,下次重新启动时它肯定会很慢.
那么我能做些什么来解决这个问题?我发现大约tune2fs. 但是我需要通过重启 cronjob 来协调它吗?说我愿意tune2fs -i 1w /dev/sda1。恐怕如果我将 cron 设置为在该日期之后运行(我可以使用-l),那么在以下日期它们将不同步,不是吗?
还有一点不清楚:崩溃后,无论如何 fsck 会运行吗?应该是?即使它在不到一周前运行,它仍然会很慢吗?
我试图将一些文件移动到我的 NAS (ShareCenter DNS-320),但在使用文件管理器时出现了一些问题:
Input/Output error
Run Code Online (Sandbox Code Playgroud)
或者在挂载的 cifs/smb 共享上使用 rsync 时
rsync: close failed on "/mnt/nas1/_am-unordered/.long-file-name.mkv.PI2rPM": Input/output error (5)
rsync error: error in file IO (code 11) at receiver.c(856) [receiver=3.1.0]
# mount | grep mnt/nas1
//192.168.x.y/backup on /mnt/nas1 type cifs (rw,relatime,vers=1.0,cache=strict,username=admin,domain=BACKUP,uid=1000,forceuid,gid=0,noforcegid,addr=192.168.x.y,file_mode=0755,dir_mode=0755,nounix,serverino,rsize=61440,wsize=65536,actimeo=1)
Run Code Online (Sandbox Code Playgroud)
我假设 NAS 内有坏扇区,我需要运行fsck以检查我的 RAID-0 NAS 内是否有损坏的磁盘。
我已经fun_plug使用本教程进行了安装,现在我可以成功通过 ssh 进入 NAS。通常我会fsck -yvckfC -E fragcheck /dev/sdX用来检查单个卸载磁盘上的坏扇区。
问题是,如何运行坏块并将其插入到已挂载的 RAID0 分区上的坏块列表中?由于 ssh 服务正在 NAS 上的挂载分区上运行:
# umount /mnt/HD/HD_a2/
umount: /mnt/HD/HD_a2: device is busy.
(In some …Run Code Online (Sandbox Code Playgroud) 尽管这与许多已关闭的问题非常相似,但我相信这不是重复的,因为我能找到的唯一答案似乎特定于 ext4。
这可能吗?
HOSTNAME:~ # fsck -n /FSMOUNTPOINT
fsck 1.38 (30-Jun-2005)
e2fsck 1.38 (30-Jun-2005)
Warning! /dev/vgname/lvname is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/vgname/lvname contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Inode 12845121 ref count is 1, should be 2. Fix? no
Inode 12845122 ref count is 1, should be 2. Fix? no
Inode 12845123 …Run Code Online (Sandbox Code Playgroud) 我刚刚在我为 Raspberry Pi 新购买的 SD 卡上运行了 fsck,它显示了以下输出:
fsck from util-linux 2.25.2
fsck.fat 3.0.27 (2014-11-12)
/dev/mmcblk0p1: 75 files, 2539/7673 clusters
Run Code Online (Sandbox Code Playgroud)
它没有在任何地方说干净并且存在错误代码 1333(如果我在运行 fsck 后执行 echo $!)。这是坏还是坏?我不知道,抱歉。
在 Ubuntu 和衍生产品(特别是 Linux Mint 17.2)中,是否有配置文件中的某个设置在启动时运行“fsck -y”?
我断电了,计算机成功重新启动,但我只想运行 fsck 来解决任何潜在问题,以免它们真正引起麻烦。
我想在启动时fsck默认运行-y以尝试强制自动修复。知道如何在 Arch Linux 下做到这一点吗?
如何确定是否在启动时执行了 fsck 操作。我了解默认的 fsck 配置和行为,但是否有报告或状态显示是否发现任何 fsck 问题或执行了修复操作?
我的系统控制台确实显示“干净”消息,但 dmesg 没有:
...
[确定] 开始在 /dev 中创建静态设备节点。
正在启动 udev 内核设备管理器...
[确定] 启动 udev 内核设备管理器。
启动根在 ro 时生成的复制规则...
[ OK ] 开始复制 root 为 ro 时生成的规则。
[6.346472] systemd-fsck [171]:ROOTFS-A:干净,26178/78240 文件,107613/312576 块
...
也许有一个标准的 API 来查询 fsck 操作和状态,而不是查看日志文件?
我们有 redhat 机器版本 6.x
我们想修复我们其中一个磁盘上的文件系统
UUID=198s5364-a29c-429e-b16d-e772acd /data_SA xfs rw,noatime,inode64,allocsize=16m 1 2
Run Code Online (Sandbox Code Playgroud)
但磁盘是 UUID
那么以下语法是否正确?
xfs_repair UUID=198s5364-a29c-429e-b16d-e772acd
Run Code Online (Sandbox Code Playgroud)
从手册页
SYNOPSIS
xfs_repair [ -dfLnPv ] [ -m maxmem ] [ -c subopt=value ] [ -o subopt[=value] ] [ -t interval ] [ -l logdev ] [ -r rtdev ] device
xfs_repair -V
Run Code Online (Sandbox Code Playgroud) 我存储所有数据的两个硬盘都出现故障。我的系统突然拒绝加载磁盘和安装分区。我将一个硬盘驱动器移到另一台计算机,在那里它被识别的麻烦较少,但分区有很多错误,并且我仍然在该驱动器的 dmesg 上收到 E/S 错误。
用于启动的分区有一个坏的超级块,但可以用另一个超级块读取它,在那里它显示更多错误,所以我首先在外部硬盘驱动器上对该分区进行了主备份。由于这个原因,我对 ddrescue 进行了两次传递,根据日志,它退出时只有一个 512 字节的错误,我认为这是有希望的。
使用 lsblk 列出备份看起来更有希望:
损坏分区的 lsblk 显示:
$lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
...
sda
??sda1
...
Run Code Online (Sandbox Code Playgroud)
现在主人显示的地方:
sdc
??sdc1 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
Run Code Online (Sandbox Code Playgroud)
现在我从这个主分区到同一个驱动器的末尾做了另一个备份,所以 lsblk 的实际输出将是:
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
fd0
loop0 squashfs /snap/anbox-installer/25
loop2 squashfs /snap/core/9669
loop3 squashfs /snap/core/10911
sda
??sda1
sdb
??sdb1 ext4 Debian_copia ce2c8e8f-f3ef-4005-9cb1-0bb9d5870f43 /
??sdb2 swap d60a8ad0-5528-4bbc-af5e-092b96282df4 [SWAP]
sdc
??sdc1 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
??sdc2 ext4 new 8cab6f75-1ea7-4451-9f48-2bbcce167184
sr0
Run Code Online (Sandbox Code Playgroud)
现在这里是遗漏的地方,我把 fsck 的选项 p 误认为选项 …