fdisk 未创建具有请求大小的分区

fdisk 未创建具有请求大小的分区

我正在尝试编写一个脚本来自动执行为 ubuntu 和 windows 创建分区的任务,以及创建我正在使用的分区fdisk,但问题是 Windows 操作系统已经创建了 3 个主分区(我猜),我想再创建两个分区,一个作为启动分区,一个作为根分区,所以当我尝试创建这两个分区时,无论是否使用脚本,我都面临的问题是,我无法使根分区大于启动分区,考虑到这个事实,我想先创建启动分区,然后将磁盘剩余的部分用作根分区,假设我的磁盘上有 15GB 的可用空间,我想创建大小为 512MB 的启动分区,其余部分应用于根分区,而无需输入大小。这是我用来创建分区的脚本:

create_boot_partition() {
    echo "++++++++++++++++++++++++++++++++++++++++++++++"
    echo "Creating the Boot Partition"
  sudo fdisk $disk_location <<EOF
  n



  +512MB
  w
EOF

}

create_root_partition() {
    echo "++++++++++++++++++++++++++++++++++++++++++++++"
    echo "Creating root Partition"
  sudo fdisk $disk_location <<EOF
  n
    
    
    
    
  w
EOF

}

disk_location=/dev/sda
create_boot_partition
sudo partprobe $disk_location
create_root_partition
sudo partprobe $disk_location

为了更好地理解,提供了下面的屏幕截图,第一个显示运行脚本之前的分区表,第二个显示运行脚本之后的分区表。

运行脚本之前

运行脚本后

我希望有一个解决方案,既安全(Windows 端的数据丢失风险是不可接受的),又能够使用脚本实现它。提前致谢。

答案1

您想要实现的目标无法通过这种方式实现:您的硬盘有一个 MBR 分区表 (MBR =“主引导记录”),在 fdisk 输出中可见为“Disklabel type: dos”。

这样最多可以有四个主分区,或者三个主分区加一个扩展分区。然后扩展分区可以再次链接到下一个扩展分区,依此类推。

因此,当您的 Windows 安装已经创建了三个主分区时,您只能再添加一个主分区或一个扩展分区。

我已经有一段时间没有使用 MBR 分区方案了,但当我使用它时,建议将启动分区作为主分区。现在可能已经改变了。

因此您有多种选择:

  • 添加扩展分区,然后添加两个或更多用于启动和 Linux 根目录的分区
  • 添加扩展分区并移动其中一个 Windows 分区,使其成为扩展分区的一部分
  • 将整个分区方案转换为 GPT,那么您不必关心主分区和扩展分区。

相关内容