修复主分区以使其可启动

修复主分区以使其可启动

当心,这里是菜鸟问题……在第二次安装 Arch Linux 时,我忘记使用可启动标志设置第一个分区。我不想丢失任何数据,但如何将可启动标志添加到分区?到目前为止,我已经使用了 fdisk,但在尝试添加可启动标志时似乎会出现错误。

[ arch /boot ]# fdisk /dev/sda1

Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.

The device contains 'ext4' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xfaeee4ac.

Command (m for help): print
Disk /dev/sda1: 500 MiB, 524288000 bytes, 1024000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfaeee4ac

Command (m for help): a
No partition is defined yet!

Command (m for help): 

然后使用parted,我也收到类似的错误(认为它从未/错误地分区/dev/sda1):

[ blackarch /boot ]# parted /dev/sda1
GNU Parted 3.5
Using /dev/sda1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: Unknown (unknown)
Disk /dev/sda1: 524MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End    Size   File system  Flags
 1      0.00B  524MB  524MB  ext4

(parted) set /dev/sda1 boot                                               
align-check  disk_toggle  mklabel      mktable      print        rescue       resizepart   select       toggle       version
disk_set     help         mkpart       name         quit         resize       rm           set          unit                
(parted) set /dev/sda1 set boot on
Error: Partition doesn't exist.
(parted)             

这里有什么解决办法吗?我确信这非常简单...

答案1

每当您运行分区工具时,您应该使用整个磁盘设备,例如,/dev/sda而不是引用特定分区的设备,例如/dev/sda1.

否则,您实际上会要求该工具在分区内构建第二个分区表。如果您愿意,当然可以这样做,但除非在非常特殊的情况下,否则它不是很有用,例如,当您计划将分区用作虚拟机中的虚拟磁盘,并且希望在虚拟机之前对虚拟磁盘进行预分区时已完全安装。

分区表通常位于其控制的实际分区之外。因此,要设置可启动的标记为 on /dev/sda1,您需要执行以下任一操作:

fdisk /dev/sda

或者:

parted /dev/sda

如果您计划使用 GRUB 引导加载程序并将其安装到主引导记录中,请注意,通常检查分区引导标志的代码位于标准 Windows 主引导记录的引导代码中。当您将 GRUB 安装到 MBR 中时,该代码将替换为 GRUB 的代码,这将完全忽略任何启动标志反正。

因此,如果您计划使用 GRUB,则不需要设置引导标志,您可以完全跳过该步骤,除非您的系统 BIOS 专门检查该标志(这有些不寻常)。

相关内容