在 Ubuntu 15.10 上,当我想使用 NTFS 文件系统格式化通过 USB3 连接的外部 4TO 磁盘(在 StarTech USB/eSATA 硬盘底座上)时,我有很多I/O 错误,并且格式化失败。
我在最新的 live CD 上尝试了 GParted v 0.19 和 GParted,但遇到gparted-live-0.23.0-1-i586.iso了同样的问题。
之后,在 Ubuntu 15.10 和相同的 USB3 连接上使用 GParted,我尝试格式化为ext4,没有问题。这真的很奇怪。
因为不知道mkfs.ext4GParted用来格式化磁盘的工具是不是对磁盘进行了像(或不像)这样的测试mkntfs,所以首先假设问题出在新磁盘上。也许这个新磁盘引起了问题。所以我尝试e2fsck -c在这个硬盘上运行。在 Ubuntu 15.10 上,e2fsck -c冻结在 0.45%,我不知道为什么。
因此,在同一台 PC 上使用另一个版本的 Ubuntu (15.04),我尝试使用 StarTech HDD 扩展坞的 eSATA 连接来连接同一个 4TO 磁盘。这一次,e2fsck -c运行正确。
几个小时后,您可以看到结果:
sudo e2fsck -c /dev/sdc1
e2fsck 1.42.12 (29-Aug-2014)
ColdCase : récupération du journal
Vérification …Run Code Online (Sandbox Code Playgroud) 当运行 e2fsck -cck /dev/mapper/xxx 我被提示
has 487 multiply-claimed block(s), shared with 84 file(s):
... (inode #221446306, mod time Tue Feb 20 19:48:38 2018)
... (inode #221446305, mod time Tue Feb 20 19:48:32 2018)
... (inode #221446304, mod time Tue Feb 20 19:48:38 2018)
... (inode #221446303, mod time Tue Feb 20 19:48:12 2018)
... (inode #221446302, mod time Tue Feb 20 19:59:04 2018)
... (inode #221446300, mod time Tue Feb 20 19:47:52 2018)
Clone multiply-claimed blocks<y>?
Run Code Online (Sandbox Code Playgroud)
继续选择“是”可能会产生什么后果。会不会完全丢失数据?如果继续没有结果是什么?
我在硬盘驱动器上运行 Ext4,老实说,我不太信任驱动器,因为它很旧并且有一些坏块。我在驱动器上有不必要的数据,所以如果它明天死了,那就没什么大不了的。
但是,我想知道它是否/何时开始死亡,并以只读方式重新安装。是否有任何选项可以在 Ext4 fs 上启用额外的文件检查?(我不在乎它是否会使文件系统变慢。)
我想缩小主目录的逻辑卷,以便可以扩展根目录的卷。
df -h
/dev/mapper/vg_mitoscomp-lv_root 50G 33G 15G 70% /
/dev/mapper/vg_mitoscomp-lv_home 53G 180M 51G 1% /home
Run Code Online (Sandbox Code Playgroud)
lsblk
?sdc2 8:34 0 111.3G 0 part
??vg_mitoscomp-lv_root (dm-0) 253:0 0 50G 0 lvm /
??vg_mitoscomp-lv_swap (dm-1) 253:1 0 7.6G 0 lvm [SWAP]
??vg_mitoscomp-lv_home (dm-2) 253:2 0 53.8G 0 lvm /home
Run Code Online (Sandbox Code Playgroud)
我可以成功卸载/home,但不能执行健康检查,也不能调整音量。
[root@MITOs-Comp ~]# e2fsck -f /dev/mapper/vg_mitoscomp-lv_home
e2fsck 1.41.12 (17-May-2010)
/dev/mapper/vg_mitoscomp-lv_home is in use.
e2fsck: Cannot continue, aborting.
Run Code Online (Sandbox Code Playgroud)
root@MITOs-Comp ~]# resize2fs /dev/mapper/vg_mitoscomp-lv_home 10G
resize2fs 1.41.12 (17-May-2010)
resize2fs: Device or resource busy while trying …Run Code Online (Sandbox Code Playgroud) 我有一个安装和卸载 USB 驱动器的备份脚本。
我只是注意到它警告我:
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Run Code Online (Sandbox Code Playgroud)
我的问题:当运行 mount 命令时,如何让它自动运行 e2fsck?
这是它的外观/etc/fsck
UUID=c870ccb3-e472-4a3e-8e82-65f4fdb73b38 /media/backup_disk_1 auto defaults,rw,noauto 0 3
Run Code Online (Sandbox Code Playgroud)
所以<pass>是3,所以我期待fsck在需要时运行。
编辑
根据给定的答案,这就是我最终这样做的方式:
(在 Bash 脚本中)
function fsck_disk {
UUID=$1
echo "Checking if we need to fsck $UUID"
MCOUNT=`tune2fs -l "UUID=$UUID" 2> /dev/null | sed -n '/Mount count:\s\+/s///p'`
if [ "$MCOUNT" -eq "$MCOUNT" ] 2> /dev/null
then
echo "Mount count = $MCOUNT"
if (( $MCOUNT > 30 )) …Run Code Online (Sandbox Code Playgroud) 我的根分区被格式化为 ext4 文件系统。
我注意到,每当我的机器崩溃并且我必须对其进行硬重置时,当再次启动并检查根文件系统时,此步骤比从完全关闭的系统启动时花费的时间长一些(例如一到两秒),但它被报告为“干净”(而不是像/dev/<rootpartition> was not cleanly unmounted, check forced)。文件系统已满 92% (352 GiB)。
我的问题:我想知道这是 ext4 的正常和安全行为还是启动脚本中的某些错误。我知道 ext4 的 fsck 比 ext3 快得多,但我担心它在系统崩溃后被报告为“干净”。
当我e2fsck -f在该分区上手动运行时,检查持续时间与 ext2/ext3 文件系统相当。所以我很担心,并且因为 beeing 所以我调整了我的文件系统以在每次启动时进行检查 ( tune2fs -c 1),这导致每次启动时都需要进行全面检查e2fsck -f。
编辑,只是为了澄清:在非干净重置后,通常,在 /var,即 reiserfs,fsck 重放日志条目;在/boot,也就是ext2,fsck运行,显示进度条,运行后报“clean”。只有在根文件系统上没有“强制检查”并且没有 fsck-progress 出现,其他文件系统也会出现,即使它们是干净的。这就是令人担忧的差异!
我正在移动一个文件,mv但操作被中断了。现在我留下了一个无法在外部 NTFS 驱动器上删除的文件。我是从 ext4 移动它的。
rm file.to.delete
rm: cannot remove ‘file.to.delete’: No such file or directory
ls
total 234M
234M file.to.delete
Run Code Online (Sandbox Code Playgroud)
我从 ...
ls -i
Run Code Online (Sandbox Code Playgroud)
然后
find . -inum 12533 -delete
find: cannot delete `file.to.delete': No such file or directory
Run Code Online (Sandbox Code Playgroud)
接下来我应该怎么做才能摆脱这个文件或这个文件在文件系统中的条目?
谢谢
更新:我将外部 NTFS 驱动器连接到我的 Windows 计算机,并且能够删除该文件。我将外部 NTFS 重新连接到我的树莓派,但目前无法安装它。
最终更新:我将外部 NTFS 驱动器重新连接到我的 Windows 计算机并检查了错误。它发现错误,然后自动修复它们。然后我将我的外部 NTFS 驱动器重新连接到我的树莓派,mount -a并且安装没有问题。固定的!:D。
我们能否确认日志消息“recovering journal”fsck应该被解释为表明文件系统上次没有完全卸载/关闭?或者,还有其他可能的原因需要注意吗?
May 03 11:52:34 alan-laptop systemd-fsck[461]: /dev/mapper/alan_dell_2016-fedora: recovering journal
May 03 11:52:42 alan-laptop systemd-fsck[461]: /dev/mapper/alan_dell_2016-fedora: clean, 365666/2621440 files, 7297878/10485760 blocks
May 03 11:52:42 alan-laptop systemd[1]: Mounting /sysroot...
May 03 11:52:42 alan-laptop kernel: EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
May 03 11:52:42 alan-laptop systemd[1]: Mounted /sysroot.
Run Code Online (Sandbox Code Playgroud)
比较fsck/home 来自同一个引导,没有显示这样的消息:
(忽略 -1 小时跳跃,这是由于“本地时区的 RTC 时间”)
May 03 10:52:57 alan-laptop systemd[1]: Starting File System Check on /dev/mapper/alan_dell_2016-home...
May 03 10:52:57 alan-laptop systemd-fsck[743]: /dev/mapper/alan_dell_2016-home: clean, 1469608/19857408 …Run Code Online (Sandbox Code Playgroud) 我使用 LVM 设置了一个服务器,最近我将一个逻辑卷从 25TB 扩展到 35TB。
root@server:/home/user# df -h /dev/mapper/vg--data-lv--data
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg--data-lv--data 25T 9.3T 15T 40% /DATA
root@server:/home/user# lvs /dev/mapper/vg--data-lv--data
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv-data vg-data -wi-ao---- 34.90t
Run Code Online (Sandbox Code Playgroud)
为了将更改应用到文件系统,我先运行 e2fsck,然后 resize2fs,但 resize2fs 一直要求我先运行 e2fsck:
root@server:/home/user# resize2fs /dev/vg-data/lv-data
resize2fs 1.43.5 (04-Aug-2017)
Please run 'e2fsck -f /dev/vg-data/lv-data' first.
root@server:/home/user# e2fsck -f /dev/vg-data/lv-data
e2fsck 1.43.5 (04-Aug-2017)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass …Run Code Online (Sandbox Code Playgroud) \xe2\x80\x9c多重声明的块\xe2\x80\x9d 是当块似乎属于多个文件时 fsck 报告的一种错误。这会导致数据损坏,因为写入其中一个文件时两个文件都会发生更改。
\n但区块被多重认领的最初原因可能是什么?它们是如何创建的以及我如何避免它们?
\ne2fsck ×10
ext4 ×5
fsck ×4
filesystems ×3
lvm ×3
corruption ×2
resize2fs ×2
centos ×1
checksum ×1
crash ×1
drivers ×1
external-hdd ×1
fstab ×1
kernel ×1
linux-kernel ×1
mount ×1
partition ×1
rm ×1
systemd ×1
usb ×1