我正在进入迷人的 Ubuntu 世界,并想在 Hyper-V 中安装 Ubuntu Server 20.04 LTS 作为虚拟机。
微软建议,在创建将要安装 Ubuntu 的文件系统时,在 ext4 文件系统中打包在一起以创建更大的虚拟块组(或“flex_bg 组”)的块组数量应设置为 4096(mkfs.ext4 -G 4096 /dev/sdX1)
安装 Ubuntu Server VM 时,我没有看到设置此参数的选项。
使用默认选项安装 Ubuntu Server 后,我有以下分区:
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot, esp
2 538MB 42.9GB 42.4GB ext4
跑步时
dumpe2fs -h /dev/sda2
我看到 sda2 的块组数量是 16:
Flex block group size: 16
有没有办法在安装过程中将其设置为 4096?
如果没有,我可以使用正确数量的块组对 sda2 重新分区(使用哪种工具(例如,安装在(虚拟)DVD 驱动器中?)),然后重新安装并手动选择 sda1 和 sda2 分区吗?
答案1
在 Ken 的正确指导下(谢谢 Ken!),我成功解决了这个问题。也许有更快或更专业的方法,但以下步骤对我有用:
- 按照说明准备虚拟磁盘这里并使用之前创建的虚拟磁盘作为操作系统磁盘来创建虚拟机。
- 将 Ubuntu Server iso 挂载到虚拟机中的虚拟 DVD 驱动器(设置为第一启动设备)中,然后启动虚拟机。
- 使用默认选项安装 Ubuntu Server。在文件系统设置步骤中,选择“使用整个磁盘”(不设置 LVM)。
- 当安装完成并且您登录时,您会注意到安装过程创建了 2 个分区:(1)/dev/sda1:一个 512 MB 的 uefi 启动分区,格式化为 fat32 和(2)/dev/sda2:一个占用剩余磁盘空间的系统文件分区,格式化为 ext4。
- 根据微软的建议,在安装之前应格式化 ext4 分区,并将“number-of-groups”参数设置为 4096(
mkfs.ext4 -G 4096 /dev/sda2
)。据我所知,在安装过程中没有机会这样做。当我们检查sudo dumpe2fs -h /dev/sda2
默认安装程序设置的此参数的值( )时,我们看到值为 16 而不是 4096(在名为“Flex block group size”的行中)。我们将通过安装 Ubuntu LiveCD 实例并重新格式化 /dev/sda2 分区来解决这个问题。 - 关闭虚拟机并加载 Ubuntu桌面在其虚拟 DVD 驱动器中安装 .iso(设置为第一启动设备)。
- 重新启动虚拟机并选择选项“无需安装即可试用 Ubuntu”。
- Ubuntu 桌面加载完成后,打开终端并执行
sudo mkfs.ext4 -G 4096 /dev/sda2
。这将擦除分区并使用正确的“组数”参数对其进行格式化,同时保持该分区的所有其他格式化参数不变。sudo dumpe2fs -h /dev/sda2
再次运行检查。 - 关闭实时 Ubuntu 会话(在我的情况下,它在关机时冻结了,我不得不在任务管理器中终止 VM 进程),加载 Ubuntu服务器将 .iso 复制到其虚拟 DVD 驱动器(设置为第一启动设备),然后重新启动 VM 以再次执行安装过程。
- 进入文件系统设置时,选择“自定义存储布局”并点击“完成”。
- 下一个屏幕要求您:(1)“在 / 上挂载文件系统”和(2)“选择启动盘”。
- 首先,选择本地磁盘作为启动盘,按回车键并选择“用作启动设备”,如下所示:步骤12
- 其次,选择已格式化为 ext4 的分区 2,按回车键并选择“编辑”。
- 在对话框中,确保在“格式:”下选择了“保留格式为 ext4”如果不是,‘number-of-groups’ 参数将再次重置为 16,您将可以重新开始! 步骤14
- 转到同一对话框中的“安装:”部分,按回车键并选择“其他”,如下所示:步骤15
- 您将收到一条红色消息,提示这是您一生中最糟糕的想法,并且如果您继续这样做,您的计算机将在 30 秒内自动销毁:步骤16. 做个反叛者并无论如何点击“保存”。
- 现在您将看到已经在 / 处安装了启动盘和文件系统。点击“完成”并继续使用默认安装选项。
- 安装完成后,登录并
sudo dumpe2fs -h /dev/sda2
再次执行。如果您已按照上述步骤操作,您现在应该在名为“Flex block group size”的行中看到 4096 的值。
在 Hyper-V 中享受全新 Ubuntu Server VM!
答案2
有评论https://askubuntu.com/a/1235219/16819这表明不需要安装两次 Ubuntu Server。
不幸的是,对于 Ubuntu Desktop 22.04 LTS,这似乎仍然是必要的。在未安装 Ubuntu Desktop 的情况下,进入“尝试 Ubuntu”模式后无法运行“sudo mkfs.ext4 -G 4096 /dev/sda2”。
- 使用 PowerShell 命令创建 Hyper-V 磁盘:
New-VHD -Path C:\MyVHDs\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB
- 使用向导创建虚拟机并将其附加到 VHD 文件。
- 附加 Ubuntu ISO
- 打开新 VM 的“设置”对话框。
- 转到安全部分并选择 Microsoft UEFI 证书颁发机构模板以允许安装 Ubuntu 启动媒体。
- 打开电脑
- 使用默认选项安装 Ubuntu 桌面。
- 关闭计算机。
从步骤 7 开始,按照与上述答案大致相同的步骤进行。
Ubuntu 桌面的具体说明:
- 右键单击 /dev/sda2
- 改变
- 用作“Ext4 日志文件系统”。不要勾选“格式化分区”。将其挂载为“/”。
- 好的
- 现在安装
- 在弹出的关于备份关键数据的吓人提示框中,点击“继续”。同样,在关于更改或不更改分区信息的对话框中,点击“继续”。
如果您试图变得聪明并在安装 Ubuntu Desktop 之前在“尝试 Ubuntu”模式下运行“sudo mkfs.ext4 -G 4096 /dev/sda”,那么您将进入以下屏幕,无法完成安装。