答案1
您无法在 ext4 文件系统上创建分区。磁盘的开头有一个分区表(传统 BIOS 类型或 GTP),它描述了磁盘上有多少个分区以及分区大小。文件系统在这些分区上创建。(Windows 为 NTFS 文件系统,Linux 为 EXT4 或其他几种类型。
对于你的情况你必须这样做:
- 首先备份你的重要数据。这很重要。
- 从 U 盘启动 Linux(或任何来源,除了系统盘)
- 调整 ext4 分区的大小(缩小)。您无法缩小已安装的分区,因此您必须从外部源启动。
- 调整系统虚拟分区的大小,使其与缩小后的 ext4 大小相匹配。为了安全起见,我建议您使用比 ext4 大小稍大一点的大小。因为您使用的是 lvm,所以您可以使用 lvresize 来执行此操作。您甚至可以使用 lvresize --resizefs 选项一次执行步骤 3.+4.,这是最安全的选项。
- 现在您必须使用 pvresize 来减小物理卷。选择所有未来 Linux 分区所需的大小(您可以使用 lvm 动态创建分区)。
- 现在删除并重新创建底层 GPT 分区。如果您删除并重新创建分区,则必须从新分区开始相同的扇区位置比您删除的分区要高,否则您将丢失 lvm 数据(很可能是您的文件系统)。
- 现在您可以为 Windows 创建一个新分区(或者您可以让它创建)。(在此之前,我会检查是否可以启动 Linux)。
关键命令是(全部以 root 身份运行,或以 sudo 开始):
# to list your logical volumes with phyisical pv-s
lvs -o +devices
# if you want 20G linux system disk
lvresize -r /dev/ubuntu-gnome-vg/your-system-lv-name 20G
# if you want preserve 500G for linux (you can use this space for anything)
pvresize --setphysicalvolumesize 500G /dev/sda3
# now resize the 3rd partition on disk1 to 500G (maybe a bit bigger for safety)
fdisk/parted/gparted
# after a reboot you can match up your pv exactly with the physical partition with (this is useful if you used the safe method and created a bit bigger partition eg.510G)
pvresize /dev/sda3
虽然它运行完美(我做过几次),但这种方法有点高级,不适合初学者。如果您对 lvm/gpt 不太熟悉,备份您的 linux 文件系统可能更简单(从启动 cd 安装它,tar+gzip 整个文件系统并复制到 pendrive/外部 hdd 上)然后创建两个分区(实际上是三个,保留小的 efi,一个分区用于 win,一个分区用于 linux),安装 windows,然后从 tar.gz 重新创建您的 linux 文件系统。无论如何您都应该备份,所以即使您选择前一种方法,这也可以作为您的备份计划!
其他注意事项:您的 Windows 可能会(而且很有可能)覆盖您的启动管理器(例如 grub),并且您的 Linux 将无法启动。如果是 UEFI/GPT,您可以选择您的操作系统,在旧系统上,您必须重新安装 grub。这很简单,只需从 usb 启动,chroot 到系统文件系统并 grub-install /dev/yourharddiskdevname。许多安装 usb(debian、ubuntu)可以从您的磁盘启动(您不必 chroot)。
答案2
根据我的经验,先安装 Windows 然后再安装 Linux 更容易。
但是,Windows 通常需要一个NTFS
分区。Windows 会覆盖grub2
启动管理器有自己的窗户引导加载程序。虽然grub2
可以处理启动 Windows 和 Linux(选择菜单和 < n > 秒后的默认启动),但 Windows 引导加载程序只加载 Windows 操作系统。
- 备份系统
- 调整 Linux 分区的大小
NTFS
创建新分区并使用文件系统格式化它NTFS
从 Windows 安装程序媒体 (dvd/usb) 启动并在分区上安装 Windows- 启动 Linux Live 安装程序媒体
- chroot 你的 linux 分区并修复 grub2(更新/重新安装)
完毕