当心,这里是菜鸟问题……在第二次安装 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 专门检查该标志(这有些不寻常)。