【问题标题】:Ext2 Filesystem On A USBUSB 上的 Ext2 文件系统
【发布时间】:2012-04-14 15:56:36
【问题描述】:

我正在使用 osdev wiki 作为对操作系统进行编程的资源。到目前为止,我有一个 2 阶段的引导加载程序,带有一个非常小的 32 位保护模式内核。

但是,对于引导加载程序,我一直在写入特定扇区并从特定扇区读取,并且我决定以“正确的方式”进行操作,并使用文件系统,所以我选择了ext2 文件系统,因为 wiki 上有文档。所以我用 ext2 格式化了我的闪存驱动器,在 Ubuntu 11.10 上使用 gparted,并抓取了 lde(Linux 磁盘编辑器),然后用我的闪存驱动器运行它。

问题是,我没有看到 ext2 页面上描述的表格,我查看了字节 1024 (0x400) 等位置,但似乎找不到表格。我回到 gparted,它仍然是格式化的。此外,即使我指定它是 ext2,lde 也会说“无法识别的文件系统”。闪存驱动器是否不使用标准的 ext2 文件系统,文件系统是否发生了如此大的变化以至于与页面上描述的相似,或者我只是没有找对地方?

链接:

分机2 - http://wiki.osdev.org/Ext2

OsDev 维基 - http://wiki.osdev.org/Main_Page

【问题讨论】:

  • 我听说一些便宜的闪存驱动器使用 FAT 文件系统中的“私有”空间供其内部使用,因此无法可靠地使用其他文件系统。但我希望这些设备不再上市,因为它们听起来可怕debugfs(8) 对您的文件系统有何看法?
  • 它说:打开文件系统时超级块中有错误的幻数,它们听起来很可怕,希望这不是问题。
  • 大部分棒子都是未分区使用的;我不知道如果它们被分区,不同的工具会如何处理它们,但请确保您始终使用/dev/sdX/dev/sdX1
  • 我一直在使用/dev/sdb,我试试/dev/sdb1。
  • 这就是问题所在。我需要使用 /dev/sdb1

标签: filesystems usb ext2


【解决方案1】:

正如 cmets 中所述,我已经回答了我的问题。我的问题不在于格式化我的闪存驱动器、闪存驱动器的使用方式或其他任何技术问题。问题是当我使用我的磁盘编辑器时,我告诉它读取驱动器本身(/dev/sdb),我需要使用分区(/dev/sdb1)。当我查看分区时,我查看了 0x400(超级块的开头),超级块确实在它应该在的位置。我还比较了超级块和其他几个块/inode 与我硬盘上的块/inode,格式相同,但数据不一样,正如预期的那样。

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 2016-03-19
    • 2011-11-08
    • 1970-01-01
    • 2014-01-18
    • 2017-08-20
    • 2013-04-29
    • 2011-12-17
    • 2013-02-16
    相关资源
    最近更新 更多