我在使用 FreeBSD8。我的一个分区有问题。我无法挂载它。它显示“操作不允许”。
我运行fsck -t ufs /dev/da0p1
。操作完成后,我可以成功挂载它。但现在分区中没有任何数据。我不知道它是否有一些数据。
问:在未挂载的分区上运行 fsck。这会导致数据丢失吗?如果是,有办法恢复吗?
编辑:我只运行fsck -t ufs /dev/da0p1
。没有 -y 或 -n,运行时,它打印了 Phase1、2、3、4、... 并成功完成。一路上没有提示。
答案1
这取决于您对什么说“是”。如果您不了解您的文件系统、文件系统上的内容以及文件系统检查时显示和询问的内容,那么很难给出有用的答案。
简短的回答是可以,它可以删除数据。它会尽力不删除数据,将 lost+found 中找到的内容放在该驱动器上,但它正在从明显已损坏的文件系统中恢复数据。换句话说,当您处理 FS 损坏时,任何东西都可能丢失。
答案2
从技术上讲,fsck 会尝试识别和修复文件系统元数据的问题,元数据是描述文件系统的数据结构,主要由指向文件、目录、权限/安全对象和文件数据的指针组成。它实际上对数据本身没有多大作用,只是凑合用而已。正如 Michael 在他的回答中提到的那样……fsck 对元数据所做的更改取决于它运行时的选项以及您在此过程中如何回答任何提示。
如果你很幸运,你的数据在 lost+found 中几乎完好无损。但大多数情况下,如果某些东西最终出现在 lost+found 中,那么该文件要么已损坏,要么已与至少部分元数据分离。因此,该文件可能不知道它属于哪个目录或文件名……在这种情况下,它只是文件的 inode 编号。虽然恢复原状并非不可能,但需要付出很多努力、时间和运气。