我有一堆在 Linux 系统上使用的外部和内部 HDD。我只有 Linux 系统,所以使用 Linux 文件系统才有意义,对吧?但是,我目前在任何地方都使用 NTFS,因为它为我提供了硬盘驱动器中最可用的空间。
不过,我现在想切换到 Linux 文件系统,主要是因为权限和兼容性(例如,我无法让我的 LUKS 加密 NTFS 分区在 Linux 下调整大小,一直告诉我在 Windows 下使用 chkdsk)。
然而,当我格式化这些硬盘时,我尝试了一堆不同的文件系统和每个 Linux 文件系统,甚至据我所知没有日志的 ext2,为自己使用了大量空间。我不记得确切的值,但是 NTFS 在 2TB HDD 上为我提供了超过 100GB 的容量,这已经很多了。
所以我的问题是:有没有办法让 ext 文件系统为自己使用更少的空间?或者是否有另一个文件系统(我尝试过 ext2、ext3、ext4、NTFS 和 vfat - 它们都没有接近 NTFS 为我提供的可用空间)具有完美的 Linux 支持和巨大的可用空间?
我很想知道文件系统(尤其是没有日志的 ext2)如何以及为什么使用比 NTFS 多得多的空间,我不知道还能在哪里问。如果可能的话,我最喜欢使用 ext4 而不使用日志和其他任何占用这么多空间的方法。
fsck不久前,我在有问题的(未安装的)分区上运行了-c。该过程无人值守,结果未存储在任何地方(坏块 inode 除外)。
现在我想获取坏块信息,以了解硬盘驱动器是否有任何问题。不幸的是,分区是在生产系统中使用的,无法卸载。
我看到了两种获得我想要的东西的方法:
运行badblocks在只读模式。这可能会花费大量时间,并对系统造成不必要的负担。
以某种方式从文件系统本身提取有关坏块的信息。
如何查看已挂载的文件系统中注册的已知坏块?
我尝试了所有推荐安装 Linux 分区的程序,如 EXT2 或 EXT3 甚至 EXT4,但没有人能在 Windows 7 32 位上做得很好。
我想访问读写,有没有程序可以做到这一点?
我想将我的 U 盘格式化为 ext2。我安装了以下工具。但不知道如何将它们用于我的案例:
mkfs也不包括在内。)Change Partition Type有很多我不知道的类型。任何人都可以指导我使用上述任何工具的步骤(或)还有其他解决方案吗?
我正在尝试在 ext2 文件系统中查找已删除的 inode。这就是我正在采取的方法。但是我觉得我做错了什么。
我首先在超级块的开头寻找 1024 个字节
我知道块大小是 1024 字节,所以组描述符表从偏移量 2048 开始。
组描述符表对每个块组都有一个组描述符,对吗?所以我计算了组描述符或块组的数量:每组的 inodes/inode 总数。这给了我值 8,这意味着我的块组描述符表中有 8 个组描述符。
我读取了所有 8 个组描述符的 first_inode_table 字段。组描述符的长度为 32 个字节
所以这就是我感到困惑的地方。第一个组描述符的 inode 表给了我 260。那么这是否意味着要访问第一个块组的 inode 表我做 260*blocksize?
到达那里后,我正在阅读 dtime 字段 - 它告诉我们上次删除的时间。如果该值 >0,则表示它已被删除。
所以我的另一个困惑是,据说 inode 表的前 11 个条目是保留的。所以只要我遍历 inode 表的所有 inode 条目,这应该不是问题吗?
我的方法正确吗?如果您看到错误,请指出正确的方向。
我需要生成几个 ext2 图像。最明显的方法是创建一个图像,安装它并复制内容。但它需要两次 root 权限(以 chown 文件和挂载映像)。我还发现了两个用于生成图像的工具:e2fsimage 和 genext2fs。
genext2fs 在生成时将图像放置在 RAM 中,但我的其中一张图像的大小为 ~30GiB。
e2fsimage 因图像大小的某些值而崩溃。
那么如何生成我的图像呢?如果该工具能够自行计算图像大小,那就太好了。
我需要能够从 win7 盒子检查/修复 SD 卡上的文件系统错误。我曾希望使用来自 cygwin 的 e2fsck,但在使其工作时遇到了一些问题。(SD 卡用于将无风扇 PC 引导至 debian)
有问题的 SD 卡有 3 个分区 - 其中 2 个是 ext2。当我将卡插入 win7 机器时,我只看到 /dev/sdb1 出现。(未安装 unf dmesg 所以我看不出可能是什么错误)。
当我在这个分区上尝试 e2fsck 时,我告诉我“超级块中的坏幻数”等等。这让我相信它不是一个 linux 分区。
(注意 - 如果我把这张 SD 卡放在 CentOS 机器上,我会看到所有三个分区都出现并且可以使用它们)
无论如何:问题:
如果我不再拥有 ext2 的副本,如何确定分区是 ext2 还是 ext3 /etc/fstab?
这是我从 dumpe2fs 中得到的。我怀疑这里有一些相关的信息。我猜测该has_journal功能可能意味着这是 ext3,但我希望对此进行一些确认。
dumpe2fs /dev/sdb1 | head -15
dumpe2fs 1.41.11 (14-Mar-2010)
Filesystem volume name: HOME
Last mounted on: <not available>
Filesystem UUID: 56d1b36b-8bba-4ba3-8133-0007a7536fc0
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1970848
Block count: 3939933
Reserved block count: 196996
Free blocks: …Run Code Online (Sandbox Code Playgroud) ext2 ×8
ext3 ×4
filesystems ×4
linux ×4
ext4 ×3
cygwin ×2
bad-blocks ×1
disk-image ×1
format ×1
fsck ×1
windows ×1
windows-7 ×1