Windows+archlinux分区和引导方案
情况一:两系统在不同硬盘,使用GRUB引导(上文默认方案)
分区方案
EFI系统分区:500M
交换分区(Swap分区):等于电脑自身物理内存(比如16G)
根目录分区:剩余全部空间
转换成GPT磁盘
- 可以用Linux命令
parted操作,也可以在Windows下用磁盘管理或者DiskGenius操作
使用cfdisk分区
图形化操作,先创建
500M大小的分区,类型选择EFI System Partition,然后选择Write操作写入再创建
4G(示例)大小的交换分区,具体大小自己决定,类型选择Linux Swap,然后选择Write操作写入最后所有空间给根分区,类型默认为
Linux File System,然后选择Write操作写入选择
quit退出
格式化
请把
x替换为具体的数字,可以用fdisk -l查看
1 | |
挂载分区
根据具体系统sda或nvme0n输入下列命令
1 | |
使用GRUB引导
ntfs-3g可以不装
此时我们应该用过arch-chroot /mnt命令进入了新系统,并安装了os-prober,efibootmgr和ntfs-3g软件包
- 安装grub,
/efi是efi系统分区的挂载点
1 | |
进入编辑界面,去掉
GRUB_CMDLINE_LINUX_DEFAULT一行中最后的quiet参数(可选)这个选项可以更改主题:
GRUB_THEME="/usr/share/grub/themes/Yunli/theme.txt",请进入系统桌面环境后再操作为了引导windows,则还需要添加新的一行
GRUB_DISABLE_OS_PROBER=false,或者在最后一行去掉GRUB_DISABLE_OS_PROBER=false前的#最后重新生成grub配置文件
1 | |
如果重启界面看不到Windows,则进入系统后挂载windwos硬盘并重新行该命令,再重启即可
如果重启后看不到GRUB,请到UEFI固件设置更改启动顺序
情况二:两系统在不同硬盘,使用systemd-boot引导
分区方案
EFI系统分区:1G
交换分区(Swap分区):等于电脑自身物理内存(比如16G)
根目录分区:剩余全部空间
从转换磁盘到挂载分区部分与上面相同
使用systemd-boot引导
警告:请确保启动方式是UEFI模式
此时我们应该用过
arch-chroot /mnt命令进入了新系统,且efi系统分区在/efi目录
使用bootctl命令将systemd-boot安装到ESP,并启动自动更新服务
1 | |
先编辑/efi/loader/loader.conf:
1 | |
加入以下内容,默认启动选项配置是arch.conf
1 | |
然后把/boot内的镜像复制到/efi
1 | |
产生两个配置文件/efi/loader/entries/arch.conf和/efi/loader/entries/arch-fallback.conf
假设你的分区是单根分区,且是ext4格式,可以用下面的命令生成这两个文件
1 | |
接下来微调这两个文件,第二个文件要加上fallback字样,同时要把微码镜像也添加进去,最终两个文件大概长这样(这里是zen内核的例子)
1 | |
1 | |
接下来输入bootctl list可以看到引导菜单的情况
重启进入archlinux,为方便操作,请用su进入root账户
处理windows分区情况
先安装edk2-shell软件包
复制shellx64.efi以便systemd-boot检测到
1 | |
接下来用fdisk -l命令查看windows的efi分区位置,再用blkid命令,看一下这个分区的UUID
重启,引导菜单选择EFI Shell,输入map查看所有分区,找到上一步分区对应的UUID,查看这一行开头的Alias字样后面的内容,例如可能是HD0a65535a1,记下这串字符
重启进入arch,新建/efi/loader/entries/windows.conf,加入以下内容
1 | |
保存退出后,输入bootctl list查看引导菜单的情况
重启即可看到这些引导选项
使用bind挂载选项
这样pacman就可以直接更新内核文件并保持EFI系统分区的规划。
1 | |
加入以下内容
1 | |
情况三:两系统在同一块硬盘,使用GRUB引导
跟情况一的区别:不额外创建efi系统分区,不格式化windows的efi分区,直接挂载至
/mnt/efi即可,后续步骤相同
情况四:两系统在同一块硬盘,使用systemd-boot引导
分区方案
EFI系统分区:用Windows的
Linux拓展分区(boot分区):1G
交换分区(Swap分区):等于电脑自身物理内存(比如16G)
根目录分区:剩余全部空间
转换成GPT磁盘
- 可以用Linux命令
parted操作,也可以在Windows下用磁盘管理或者DiskGenius操作
使用cfdisk分区
图形化操作,先创建
1G大小的分区,类型选择Linux Extended Partition,然后选择Write操作写入再创建
4G(示例)大小的交换分区,具体大小自己决定,类型选择Linux Swap,然后选择Write操作写入最后所有空间给根分区,类型默认为
Linux File System,然后选择Write操作写入选择
quit退出
格式化
请把
x替换为具体的数字,可以用fdisk -l查看
1 | |
挂载分区
根据具体系统sda或nvme0n输入下列命令
1 | |
使用systemd-boot引导
警告:请确保启动方式是UEFI模式
此时我们应该用过
arch-chroot /mnt命令进入了新系统,且efi系统分区在/efi目录,boot分区在/boot目录
使用命令bootctl,并启动自动更新服务
1 | |
编辑/efi/loader/loader.conf:
1 | |
加入以下内容,默认启动选项配置是arch.conf
1 | |
再产生两个配置文件/boot/loader/entries/arch.conf和/boot/loader/entries/arch-fallback.conf
1 | |
接下来微调这两个文件,第二个文件要加上fallback字样,同时要把微码镜像也添加进去,最终两个文件大概长这样,跟情况二相同
1 | |
1 | |
接下来输入bootctl list可以看到引导菜单的情况
安装完桌面环境,重启即可看到arch和windows的选项(systemd-boot会自动探测同一esp下windows的efi文件)