近期机缘巧合之下,突然心血来潮想用一下Linux系统。但是博主胆子很小,很怕误操作把Windows系统搞崩了,因此采用了双硬盘分别做EFI分区,Linux下使用grub作为引导启动的方法。
目前我用的Arch Linux环境:
准备工作
一个U盘(安装ArchLinux镜像用)
一个装有两个硬盘的PC,其中一个硬盘装好windows系统
良好的睡眠或重要数据备份,磁盘分配的部分一个疏忽就很可能摧毁你的windows系统!
前期准备
解锁bitlocker
详见:4 种简单方法:如何在 Windows 11 中关闭 BitLocker 加密
新磁盘分区
利用Windows的磁盘管理工具分出第二块磁盘的空闲空间。不要建立分区,分区在下文中分配
镜像下载与启动盘安装
找到形如下图的镜像站点,有能力的可以直连,并获取iso文件:
接下来制作启动U盘,这里给出两种方案,请酌情选择:
Rufus
分区类型:UEFI引导选择GPT,BIOS引导选择MBR。
写入方式选择DD写入。
Ventoy
简单来说,Ventoy是一个制作可启动U盘的开源工具。
有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了,无需其他操作。
正如官方介绍那样简单,只需要把Ventoy烧录进U盘后,直接把Arch Linux的iso文件放入u盘中即可启动。
U盘启动
进入你的电脑的BIOS模式(根据主板和笔记本品牌的不同,启动按键会有区别,请自行查阅相关资料)
关闭Secure Boot模式(一般在安全设置选项栏中)
在UFEI启动设置中把U盘启动的优先级拉到最高。
重启,进入引导菜单,选择
Arch Linux install medium(x86_64, UEFI)
这样,系统应该就进入U盘中的Arch Linux系统了。如果屏幕上最后一行显示出如下信息,说明已经正确进入了系统。
root@archiso ~ #
在开始配置之前,请先确认网络是否正常
查看当前网络设备的锁定状态:
rfkill list
如果Soft blocked为yes,则需要解锁wifi:
rfkill unblock wifi
查看网卡设备,并根据网卡名启用网卡,替换*网卡名*为你的网卡名,如wlan0:
ip link set *网卡名* up
进入网络配置界面并连接wifi(网卡名以wlan0为例):
注意:目前不能输入中文,SSID如果有中文字符的话,我的解决方案是手机开个全英文SSID的热点,再连接
iwctl #进入网络配置界面
station wlan0 scan #扫描网络
station wlan0 get_networks #打印扫描到的wifi
station wlan0 connect *SSID* #SSID替换为你wifi的SSID,即网络名称
#输入wifi密码
exit #推出网络配置页面
ping一下连通性:
ping baidu.com
磁盘分区
全文最重点的地方来了!请小心对待您的重要数据!!!
查看磁盘布局:
fdisk -l
输出形式示例如下:
Disk /dev/nvme1n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: Great Wall GW3300 256GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 19F80251-F898-44B2-8603-DB366E36CCC1
Disk /dev/nvme0n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: YMTC YMSS2ED08B66MC
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F52B9027-C3BE-4C03-9870-C7FF5548E77C
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 534527 532480 260M EFI System
/dev/nvme0n1p2 534528 567295 32768 16M Microsoft reserved
/dev/nvme0n1p3 567296 1049145343 1048578048 500G Microsoft basic data
/dev/nvme0n1p4 1049145344 1996312575 947167232 451.6G Microsoft basic data
/dev/nvme0n1p5 1996312576 2000408575 4096000 2G Windows recovery environment
从以上输出结果可以看出,nvme1n1为我们需要安装LINUX系统的硬盘,而nvme0n1为已经装了Windows的硬盘
⚠️⚠️⚠️为了防止我的设备和你实际使用的的混淆,下文全都以形如*WindowsEFI分区*来替代nvme0n1p1,*Linux硬盘*替代nvme1n1的形式进行阐述⚠️⚠️⚠️
我们需要对Linux系统的硬盘分三个分区:EFI引导分区、内存Swap分区、系统主分区。
fdisk /dev/*Linux硬盘*
输入
n创建efi分区,LastSector:+550M输入
n创建swap分区,LastSector:+8G输入
n创建主分区,LastSector:默认剩余所有空间输入
w保存分区布局
同样,为了防止混淆,我先写一下我的对应关系表,请最好自己记录下自己的对照关系,以防失误!!!
格式化分区:
mkfs.fat -F 32 /dev/*LinuxEFI分区* #格式化EFI分区为fat32
mkfs.btrfs /dev/*Linux系统主分区* #格式化主分区为btrfs
mkswap /dev/*LinuxSwap分区* #创建Swap文件
swapon /dev/*LinuxSwap分区* #指定分区为Swap
磁盘挂载
mount /dev/*Linux系统主分区* /mnt
mkdir /mnt/boot
mount /dev/*LinuxEFI分区* /mnt/boot
正式安装ArchLinux
前言:VIM基础操作
I键进入编辑模式,ESC键退出编辑模式:wq保存并退出,q!强制退出/*你要搜索的内容*搜索内容,如/myFunction,回车键按序查找
添加镜像源
vim /etc/pacman.d/mirrorlist
在文件中添加你喜欢的镜像源,如:
Server = https://mirror.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
:wq保存并退出
同步并更新本地储存库:
pacman -Sy
安装系统
在开始安装系统之前,需要更新keyring:
pacman -Sy archlinux-keyring
正式开始安装系统,以下的pacman包请根据自己的喜好进行删改,如果是完全的萌新请不要擅自修改(AMD处理器把intel-ucode改为amd-ucode):
pacstrap -K /mnt base base-devel linux linux-firmware sudo vim networkmanager e2fsprogs ntfs-3g intel-ucode
创建硬盘挂载的系统层次结构:
genfstab -U /mnt >> /mnt/etc/fstab
到这里,Arch Linux已经成功安装进你的硬盘中了,但是因为还没有配置grub引导双系统启动,接下来的操作建议仍然在U盘启动中完成,直到Grub配置完毕。
arch-chroot /mnt #进入系统
本地化
配置时钟:
ln -sf /user/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --sytohc
语言:
vim etc/locale.gen
取消注释你想要的语言,如#en_US.UTF-8 UTF-8、#zh-CH.UTF-8 UTF-8
locale-gen
vim /etc/locale.conf
输入LANG=en_US.UTF-8
创建账号
配置主机名:
vim /etc/hostname
直接输入你想要的主机名。
自动启动NetworkManager服务:
systemctl enable NetworkManager
创建账户:
useradd -m -G wheel -s /bin/bash *你想要的用户名*
passwd *你想要的用户名*
配置sudo权限:
visudo
取消注释# %wheel ALL=(ALL:ALL) ALL
配置Grub引导
安装Grub并进入Grub配置:
pacman -S grub efibootmgr os-prober
vim /etc/default/grub
搜索#GRUB_DISABLE_OS_PROBER=false 删除注释。
安装GRUB引导:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
查看Windows系统EFI分区的UUID缩写(形如A1B2-C3D4)的八位16进制数,并记录下来:
blkid /dev/*WindowsEFI分区*
创建配置文件,并手动添加Windows配置:
grub-mkcondig -o /boot/grub/grub.cfg
vim /boot/grub/grub.cfg
在如下两行注释之间添加Windows配置:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 11" {
insmod part_gpt
insmod fat
insmod chain
search --fs-uuid --set=root XXXX-XXXX
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###
这个时候可以重启看一下Grub引导能不能正常使用了
exit
umount -R /mnt
reboot
安装桌面环境
首先安装显示服务器,我使用的是Wayland,请根据自己的喜好选择
pacman -S wayland
安装GUI并配置开机自启动,我使用的是Gnome,也一样请根据自己的喜好选择
pacman -S gnome gdm
systemctl enable gdm #配置开机自启动
重启,进入GUI永远都会是激动人心的时刻!!!
reboot
GUI的配置,包括中文输入法、grub主题美化之类的不再赘述,请自行查阅资料。