重置分区编号

重置分区编号

我刚刚决定删除 Windows 分区并只使用 Linux。

我的旧分区表是:

  • sda1:W7启动分区
  • sda2:W7分区
  • sda3:Linux
  • sda4:逻辑分区的开始
  • sda5:交换。

我删除了sda1和sda2,然后扩展了sda3。现在我的分区表是:

  • sda3:Linux
  • sda4:逻辑分区的开始
  • sda5:交换

我想把sda3改成sda1,怎么办?

我的 fstab 也不断向我显示旧的 Windows 分区:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>

proc    /proc   proc    defaults    0   0
#Entry for /dev/sda3 :
UUID=059c7142-b4d8-4ab0-8d0f-ee460fce905e   /   ext4    rw,errors=remount-ro    0   1
#Entry for /dev/sdb1 :
UUID=5632BCEF32BCD569   /media/Datos    ntfs-3g defaults,locale=en_US.UTF-8 0   0
#Entry for /dev/sda2 :
UUID=60D8A6E5D8A6B8A4   /media/Windows  ntfs-3g defaults,locale=en_US.UTF-8 0   0
#Entry for /dev/sda5 :
UUID=53cd360a-1321-497f-8c3a-ff3adf4cf82c   swap    swap    sw  0   0

答案1

首先,如果你搬家了开始分区的情况下,很有可能您只能挥手告别那里的文件系统。原因是,文件系统的开头通常包含一个非常重要的数据结构(通常称为超级块),没有它,文件系统中的数据将无法访问。也许存在一些实用程序可以移动超级块并修复文件系统(因为最终用于数据寻址的扇区号会发生变化,因为这些扇区号是从分区的开头开始计数的),但我会非常谨慎使用任何此类东西。特别是如果您打算在已安装的分区上使用它。

如果您在活动系统上执行此操作,内核仍然缓存旧的分区表,并将在重新启动时创建一个新的分区表(当设备上没有安装分区时,它可以重新读取它 - 您可以使用例如请求此操作hdparm -z)。如果您仍然可以在某处获取旧的分区边界(精确的扇区),我建议您重置它并重试,如下所述。如果您不再有这些信息,有些实用程序会尝试通过扫描磁盘中的超级块(或者可能通过检查内核缓存数据)来找出原始分区边界。

也就是说,调整大小的正确方法是:

  1. 将文件系统从/dev/sda3复制到/dev/sda1- 逐个文件或使用转储实用程序,或者dd如果目标大于源则直接使用。在最后一种情况下,您应该扩展文件系统,如下所述。

  2. 修复文件系统中/dev/sda1/dev/sda3到 的所有重要引用/dev/sda1- 这包括:

    • 引导加载程序配置

      • 在哪里可以找到要启动的内核

      • root=告诉内核要挂载哪个分区的内核选项/

    • /etc/fstab- 你必须手动完成此操作 - 再次可能有一个实用程序,但对于这种类型的事情,我不会依赖它。

  3. 启动自/dev/sda1

  4. 要么扩展/dev/sda1以覆盖/dev/sda2/dev/sda3/或重新划分这些空间所跨越的现在未使用的空间。如果扩展,请使用文件系统的实用程序在最后扩展它(对于 EXT2/3 resize2fs,对于 XFSxfs_growfs等)。

  5. 如果需要的话再次更新/etc/fstab

重新编号:fdiskfix partition order(在额外功能子菜单中)、gdisksort partitions(在主菜单中)。然后,您必须/etc/fstab再次检查,可能还需要检查引导加载程序配置,以查看是否需要任何干预。

答案2

您必须手动从 中删除条目/etc/fstab。无论如何,你为什么关心分区号是多少呢?这并不重要,但如果您确实愿意,可以fdisk在扇区模式下使用(使用-uu命令)列出当前分区,删除它们,然后使用不同的编号但相同的起始和结束扇区重新创建它们。

答案3

危险的方法就是玩gpart或者测试盘...(TestDisk 实际上在过去 10 年里一直在更新...)

它将在磁盘中查找分区,并根据找到的内容提出一个新的分区表。如果您以某种方式丢失了分区表,则可以使用它,但也应该适用于此。

sda5会更难,因为它是扩展分区,但您也可以删除它并重新创建它..(因为它是交换分区)

相关内容