我的磁盘上的日志已死,并且驱动器仅以只读方式安装,我无法将其重新安装为读写方式。
因此我卸载了它,运行了 e2fsck,然后重新安装了驱动器。
磁盘已修复,但文件已丢失。我实际上可以看到文件占用的磁盘空间如下:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/drive
1.9T 46G 1.7T 3% /drive
所以它们在那里,我只是无法访问它。以下是我所做的
[root@box log]# umount /dev/mapper/drive
[root@box log]# e2fsck /dev/mapper/drive
e2fsck 1.41.12 (17-May-2010)
/dev/mapper/drive: recovering journal
/dev/mapper/drive 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
Pass 5: Checking group summary information
/dev/mapper/drive: ***** FILE SYSTEM WAS MODIFIED *****
/dev/mapper/drive: 1704368/124518400 files (1.1% non-contiguous), 19741609/498065408 blocks
[root@box log]# mount -o remount,rw /drive
我该如何恢复文件?我重新安装时是不是操作不当?提前致谢!
答案1
首先:不要尝试对原始磁盘进行进一步修复!使用另一个硬盘驱动器并使用“dd”将 /dev/mapper/drive 作为映像备份到新磁盘:(我假设新磁盘使用文件系统并安装到 /mnt/newdisk 目录)
dd if=/dev/mapper/drive of=/mnt/newdisk/drive.img bs=4M
此后,您应该尝试仅使用映像副本“mnt/newdisk/drive.img”进行修复。挂载映像并查看“lost+found”目录是否可以在其中找到数据。
losetup -f /mnt/newdisk/drive.img losetup -a|grep drive.img ### 获取 /dev/loop-device mkdir /mnt/drv-copy && mount /dev/loopX /mnt/drv-copy ls -la /mnt/drv-copy/lost+found
但是 e2fsck 通常只会重放日志并退出。如果不使用 -f -p,e2fsck 将不会检查和修复文件系统结构。因此,如果您之前没有遇到由媒体错误导致的 I/O 错误,则您不应该丢失数据。因此,请检查在“dd”复制期间是否可以在 systemlog/dmesg 上找到 I/O 消息。如果没有,请在 /mnt/dsk-copy 上执行卸载并使用“e2fsck -f -y
答案2
我在 Ubuntu Server 18.10 上遇到了类似的问题,我有 2 个 HDD(2TB)和 1 个 SSD(120GB)。Ubuntu 服务器安装在 SSD 上。我最初运行
fsck -y /dev/sdb1
它不断给我信息
***** FILE SYSTEM WAS MODIFIED *****
我搜索解决方案并找到了 e2fsck。我运行了 e2fsck(仅在其中一个硬盘上),当我安装它时,一切都消失了。
e2fsck -y /deb/sdb1
让我头疼的是,e2fsck 运行速度非常快,所以不可能删除我的所有数据。而 lost+found 目录中的文件与我之前硬盘上的文件不一致。因此,我接下来执行了以下操作:运行:
sudo e2fsck -f -y /dev/sdb1
将驱动器重新安装回去但仍然没有显示任何内容。
之后我跑了:
sudo e2fsck -f -p /dev/sdb1
现在一切都恢复正常了。
我真的很害怕无法恢复我的文件,现在一切似乎都好了。我需要指出的是,每次我重新启动系统时,它都会一直处于“恢复模式”。
我知道这个问题是两年前发布的,但在我拼命搜索的过程中我偶然发现了它,我只是想说这修复了我消失的文件。