我刚刚决定删除 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
)。如果您仍然可以在某处获取旧的分区边界(精确的扇区),我建议您重置它并重试,如下所述。如果您不再有这些信息,有些实用程序会尝试通过扫描磁盘中的超级块(或者可能通过检查内核缓存数据)来找出原始分区边界。
也就是说,调整大小的正确方法是:
将文件系统从
/dev/sda3
复制到/dev/sda1
- 逐个文件或使用转储实用程序,或者dd
如果目标大于源则直接使用。在最后一种情况下,您应该扩展文件系统,如下所述。修复文件系统中
/dev/sda1
从/dev/sda3
到 的所有重要引用/dev/sda1
- 这包括:引导加载程序配置
在哪里可以找到要启动的内核
root=
告诉内核要挂载哪个分区的内核选项/
/etc/fstab
- 你必须手动完成此操作 - 再次可能有一个实用程序,但对于这种类型的事情,我不会依赖它。
启动自
/dev/sda1
要么扩展
/dev/sda1
以覆盖/dev/sda2
和/dev/sda3
/或重新划分这些空间所跨越的现在未使用的空间。如果扩展,请使用文件系统的实用程序在最后扩展它(对于 EXT2/3resize2fs
,对于 XFSxfs_growfs
等)。如果需要的话再次更新
/etc/fstab
。
重新编号:fdisk
有fix partition order
(在额外功能子菜单中)、gdisk
有sort partitions
(在主菜单中)。然后,您必须/etc/fstab
再次检查,可能还需要检查引导加载程序配置,以查看是否需要任何干预。
答案2
您必须手动从 中删除条目/etc/fstab
。无论如何,你为什么关心分区号是多少呢?这并不重要,但如果您确实愿意,可以fdisk
在扇区模式下使用(使用-u
或u
命令)列出当前分区,删除它们,然后使用不同的编号但相同的起始和结束扇区重新创建它们。