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文件)