长话短说:
1TB NTFS 辅助驱动器。使用 GParted,将主分区大小调整为约 800GB。在新未分配的空间中创建并写入新分区。删除了新分区,尝试将新分区大小调整回新大小。 GParted 说:
Outside of the volume reference for inode 1248344 at 226331322:4014
Outside of the volume reference for inode 1248344 at 226352067:3749
.
.
.
Outside of the volume reference for inode 1248344 at 226380468:1506
100.00 percent completed
ERROR: Filesystem check failed!
ERROR: 236884 clusters are referenced outside of the volume.
NTFS is inconsistent. Run chkdsk /f on Windows then reboot it TWICE!
The usage of the /f parameter is very IMPORTANT! No modification was
and will be made to NTFS by this software until it gets repaired.
做什么?
不确定有多少背景信息是相关的,所以我将从头开始。
几年前,我有一个 1TB 硬盘,上面装有 Windows 10。后来我获得了一个 240GB SSD,将 Windows 固定在前约 140GB 上,将 Linux 固定在最后约 100GB 上,并将硬盘用作辅助驱动器。去年春天,窗户坏了(我忘了具体是怎么坏的,但它没有启动)。我改用 Linux 作为我的主要操作系统,这很好。我仍然可以访问硬盘和 Windows 分区上的所有文件。
后来,我终于用完了 100GB 分区的空间,所以我用dd if=/dev/sdb1 of=/media/hdd/backuup/win10ssd.image
(不要引用我的确切名称,但我 99% 确定我使用了dd if=win10_partition of=path_on_hdd
)来“备份”Windows 分区。最近,我终于需要访问 Windows 分区上的某些内容,因此我决定将该映像粘贴到新分区上。我的硬盘上有大约 300 GB 的可用空间,所以我有足够的空间来执行此操作。
此时的情况:1TB 硬盘上有一个 999GB 的 NTFS 分区(sde1)。 136GiB 图像作为常规文件存储在其中。
以下是从那时起事件的大致顺序:
- 在 GParted 中,我将 sde1 缩小了约 150GiB。
- 我认为 GParted 需要在 sde1 上移动数据,因为它最终没有 150 个连续的 GiB 空闲空间。它没有给出任何重大警告,因此我认为这是一个相对节省的操作(尽管乱搞原始驱动器数据是安全的)。这花了几个小时。
- 在 GParted 中,我在未分配空间的末尾创建了一个新分区 (sde3),并将其大小调整为我认为正确的 MiB 数量。
sudo dd if=win10backup.image of=/dev/sde3
。我现在意识到,由于原始分区和新分区之间的差异,这可能注定会失败(仍然对此不太了解,不知道会有什么差异,但似乎它可能不会)事情就这么简单)。- 结果在复制大部分图像后失败了,因为我把 sde3 做得稍微太小了。可能对 MiB 与 MB 之类的东西做出了愚蠢的错误计算。
- 我想将 sde3 调整为正确的大小。我
fdisk -l
可以看到图像的确切字节数,它不是 MiB 的整数,并且 GParted 似乎不适用于小于 MiB 的增量。 - 我关闭了 GParted,并打开了 Ubuntu 的磁盘实用程序。这让我创建了一个大小合适的分区,但我无法在未分配空间的末尾创建它,只能在开头创建它。
我思考我创建了分区,
dd
再次运行以将映像放在该分区上,然后尝试安装它。不幸的是,拥有大部分所有输出的终端一夜之间就消失了。我仍然拥有的唯一输出是redacted@redacted:~$ sudo mount -o ro /dev/sde3 /mnt [sudo] password for redacted: Failed to read last sector (285778390): Invalid argument HINTS: Either the volume is a RAID/LDM but it wasn't setup yet, or it was not setup correctly (e.g. by not using mdadm --build ...), or a wrong device is tried to be mounted, or the partition table is corrupt (partition is smaller than NTFS), or the NTFS boot sector is corrupt (NTFS size is not valid). Failed to mount '/dev/sde3': Invalid argument The device '/dev/sde3' doesn't seem to have a valid NTFS. Maybe the wrong device is used? Or the whole disk instead of a partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
此时,我读到了有关循环设备的信息。这似乎比摆弄分区之类的东西简单得多,所以我尝试直接使用 挂载映像
sudo mount -t ntfs win10backup.image /mnt
。这很有效,看起来我可以访问我的所有文件。- 看到该工作后,我现在计划在需要将文档从镜像复制到我的主 Linux SSD 时临时挂载该镜像。不再需要任何新分区,我尝试调整 sde1 的大小以再次占用当前未分配的 ~150GB。
当 GParted 运行时
ntfsresize -i -f -v '/dev/sde1'
,它会抛出一堆错误,主要是“在 #########:#### 处的 inode 1248344 的卷引用之外”。在几十行之后,它说错误:文件系统检查失败!
错误:在卷外部引用了 236884 个簇。
NTFS 不一致。在 Windows 上运行 chkdsk /f 然后重新启动两次!
/f 参数的用法非常重要!
在修复之前,该软件不会对 NTFS 进行 任何修改。这是迄今为止我看到的第一个迹象表明有什么问题。
这时,我意识到我可能有点不知所措了。从那时起我就没有接触过任何与驱动器相关的事情(安装、卸载、gparted 等)。
我当前的主要目标是确保硬盘上尽可能多的有用文件以及硬盘上存储的图像是安全的。其中没有一个是至关重要的,但许多是无法替代的。我考虑得到一切恢复正常状态是一个延伸目标。
目前情况: 1TB 硬盘,在 ~800MB 分区上安装了非常旧的 win10,可能在某种程度上已损坏。存储在该分区中的较新 win10 分区的映像。该分区后大约有 150GB 未分配空间。 240GB SSD,上面装有 Ubuntu,据我所知,这个驱动器 100% 完好。
理想情况:硬盘上存储的所有文件都可以自由访问,并且该驱动器上的所有可用空间都可以使用。
不太理想但仍然可以的情况:1TB 驱动器上的重要文件可以通过某种方式访问,即使只是复制到另一个稳定的驱动器。重要文件可能只占用大约 500GB 文件中的一小部分,因此不可能有超过几个文件被占用。完全地此时无法挽回。
目前我正在考虑做的事情:
- 购买一个新硬盘,看看是否可以访问旧硬盘上的文件,如果可以,将重要的文件复制到新硬盘上。
- 优点:应该有可能成功,甚至不应该有机会使当前情况变得更糟。
- 缺点:需要购买新的驱动器,并等待它到达。
- 尝试在 sde1 上启动 Windows 10 安装,然后可能
chkdsk /f
按照 GParted 的建议运行。- 优点:可以工作吗?这就是 GParted 所说要做的。
- 缺点:可能根本不起作用,甚至可能会搞砸。
- 别再碰东西了,像什么都没发生一样继续,希望没有什么重要的事情被损坏。
- 优点:容易做到,不会让当前的情况变得更糟。
- 缺点:没有解决任何问题,留下 150GB 未分配且无法使用。
- 继续用 dd、gparted 等搞砸,希望我能以某种方式修复问题。
- 优点:有趣,我会学到东西。
- 缺点:相对更有可能破坏东西,或者至少阻止我恢复现在可以恢复的东西。
我应该如何进行?此时,什么是安全的,什么是可能不安全吗?有没有办法知道 inode 1248344 是什么,这是唯一的方法吗?可能无法挽回吗?
乌班图18.04。
这是我尝试调整 sde1 大小的完整 GParted 日志:
GParted 0.30.0 --enable-libparted-dmraid --enable-online-resize
Libparted 3.2
Delete /dev/sde3 (ntfs, 136.27 GiB) from /dev/sde 00:00:01 ( SUCCESS )
calibrate /dev/sde3 00:00:01 ( SUCCESS )
path: /dev/sde3 (partition)
start: 1605038080
end: 1890818047
size: 285779968 (136.27 GiB)
delete partition 00:00:00 ( SUCCESS )
========================================
Grow /dev/sde1 from 765.34 GiB to 931.07 GiB 00:00:34 ( ERROR )
calibrate /dev/sde1 00:00:00 ( SUCCESS )
path: /dev/sde1 (partition)
start: 63
end: 1605038079
size: 1605038017 (765.34 GiB)
check file system on /dev/sde1 for errors and (if possible) fix them 00:00:34 ( ERROR )
ntfsresize -i -f -v '/dev/sde1' 00:00:34 ( ERROR )
ntfsresize v2017.3.23 (libntfs-3g)
Device name : /dev/sde1
NTFS volume version: 3.1
Cluster size : 4096 bytes
Current volume size: 821779464704 bytes (821780 MB)
Current device size: 821779464704 bytes (821780 MB)
Checking for bad sectors ...
Checking filesystem consistency ...
Outside of the volume reference for inode 1248344 at 217445823:4033
Outside of the volume reference for inode 1248344 at 217455407:2641
Outside of the volume reference for inode 1248344 at 217470379:702
Outside of the volume reference for inode 1248344 at 217495177:842
Outside of the volume reference for inode 1248344 at 217511561:2185
Outside of the volume reference for inode 1248344 at 217536006:11
Outside of the volume reference for inode 1248344 at 217568711:167
Outside of the volume reference for inode 1248344 at 217597453:208
Outside of the volume reference for inode 1248344 at 217630118:156
Outside of the volume reference for inode 1248344 at 217654724:4028
Outside of the volume reference for inode 1248344 at 217675211:4021
Outside of the volume reference for inode 1248344 at 217679346:3982
Outside of the volume reference for inode 1248344 at 217695707:223
Outside of the volume reference for inode 1248344 at 217724338:335
Outside of the volume reference for inode 1248344 at 217740744:865
Outside of the volume reference for inode 1248344 at 225333850:4022
Outside of the volume reference for inode 1248344 at 225342046:4018
Outside of the volume reference for inode 1248344 at 225354383:3969
Outside of the volume reference for inode 1248344 at 225358503:3945
Outside of the volume reference for inode 1248344 at 225374941:3891
Outside of the volume reference for inode 1248344 at 225395366:3946
Outside of the volume reference for inode 1248344 at 225407666:3934
Outside of the volume reference for inode 1248344 at 225432169:4007
Outside of the volume reference for inode 1248344 at 225464904:4040
Outside of the volume reference for inode 1248344 at 225469000:4040
Outside of the volume reference for inode 1248344 at 225501762:4046
Outside of the volume reference for inode 1248344 at 225505858:4046
Outside of the volume reference for inode 1248344 at 225534530:4046
Outside of the volume reference for inode 1248344 at 225542715:4053
Outside of the volume reference for inode 1248344 at 225555012:4044
Outside of the volume reference for inode 1248344 at 225579592:4040
Outside of the volume reference for inode 1248344 at 225608260:4044
Outside of the volume reference for inode 1248344 at 225616457:4039
Outside of the volume reference for inode 1248344 at 225636958:4018
Outside of the volume reference for inode 1248344 at 225669721:4023
Outside of the volume reference for inode 1248344 at 225702472:4040
Outside of the volume reference for inode 1248344 at 225710843:3861
Outside of the volume reference for inode 1248344 at 225723433:3559
Outside of the volume reference for inode 1248344 at 225751680:3984
Outside of the volume reference for inode 1248344 at 225776218:4022
Outside of the volume reference for inode 1248344 at 225800795:4021
Outside of the volume reference for inode 1248344 at 225808992:4016
Outside of the volume reference for inode 1248344 at 225813090:4014
Outside of the volume reference for inode 1248344 at 225821341:3955
Outside of the volume reference for inode 1248344 at 225854689:3375
Outside of the volume reference for inode 1248344 at 225882712:4024
Outside of the volume reference for inode 1248344 at 225915651:3853
Outside of the volume reference for inode 1248344 at 225948247:4025
Outside of the volume reference for inode 1248344 at 225956444:4020
Outside of the volume reference for inode 1248344 at 225976946:3998
Outside of the volume reference for inode 1248344 at 225993333:3995
Outside of the volume reference for inode 1248344 at 226021994:4006
Outside of the volume reference for inode 1248344 at 226030186:4006
Outside of the volume reference for inode 1248344 at 226060971:4029
Outside of the volume reference for inode 1248344 at 226089666:4006
Outside of the volume reference for inode 1248344 at 226106041:4015
Outside of the volume reference for inode 1248344 at 226134703:4025
Outside of the volume reference for inode 1248344 at 226167491:4005
Outside of the volume reference for inode 1248344 at 226175685:4003
Outside of the volume reference for inode 1248344 at 226204338:4022
Outside of the volume reference for inode 1248344 at 226212528:4024
Outside of the volume reference for inode 1248344 at 226224829:4011
Outside of the volume reference for inode 1248344 at 226257583:4025
Outside of the volume reference for inode 1248344 at 226261687:4017
Outside of the volume reference for inode 1248344 at 226278072:4016
Outside of the volume reference for inode 1248344 at 226306727:4033
Outside of the volume reference for inode 1248344 at 226331322:4014
Outside of the volume reference for inode 1248344 at 226352067:3749
Outside of the volume reference for inode 1248344 at 226380468:1506
100.00 percent completed
ERROR: Filesystem check failed!
ERROR: 236884 clusters are referenced outside of the volume.
NTFS is inconsistent. Run chkdsk /f on Windows then reboot it TWICE!
The usage of the /f parameter is very IMPORTANT! No modification was
and will be made to NTFS by this software until it gets repaired.
========================================
我希望我有更多的日志和东西,但是自昨晚以来,所有带有我运行的命令输出的终端都由于某种原因消失了。
答案1
我首先会通过将分区中的所有文件复制到其他地方,或者拍摄分区的映像(如果其他工具失败,甚至使用 dd )来进行备份。然后使用 Rufus 将 Windows 安装程序(您可以从 Microsoft 合法下载)放入闪存驱动器,从该驱动器启动并chkdsk
从那里运行。它会告诉您它删除了哪些文件,以修复“inode 的卷引用之外”错误。如果重要的话,您可以尝试手动将这些文件复制回来。