安装archlinux和windows双系统

安装archlinux和windows双系统 前言这是一篇自用与记录为主的文章其实算是学习笔记这个流程有自己的思考但是绝大多数都是B站UP主林长枫shorin709的视频内容本篇笔记仅供参考。本笔记只到archlinux最小系统的安装没有桌面环境没有显卡驱动。基本状态现在应该处于ISO提供的Live状态还没有装系统。做系统优盘就省略了看网上的教程就好。 单硬盘双系统硬盘是GPT的已经准备了free的硬盘空间。另外我目前的启动分区是1GB大小的但是正常应该只有260MB左右ESP大概会出现空间不足的情况。ISO内操作1.联网1.1 用以下命令去查看网络连接ip a # 先检查网络 ip link # 这个可以查网卡1.2 开启无线网卡rfkill list # 查看所有无线设备及阻塞状态 rfkill unblock wifi # 解除WiFi阻塞 rfkill block wifi # 软关闭WiFi飞行模式rfkill 是 Linux 内核的无线射频开关子系统用来统一管理Wi-Fi、蓝牙等无线发射设备可以查询、启动、禁用他们的射频信号。1.3 使用iwctl进入联网状态连接WIFI用手机热点iwctl # 进入网络状态 device list # 列出可用网卡设备 station [设备名] scan # 扫描网络 station [设备名] get-networks # 列出可用网络 station [设备名] connect [wifi] # 连接WIFI1.4 测试网络状态# 可以ping个网站测试 ping -c 3 bilibili.com2.同步时间timedatectl # 确认同步到了UTC时间 timedatectl set-ntp true # 设置NTP3.更新Pacman3.1 安装密钥pacman -Sy archlinux-keyringarchlinux-keyring 是一个官方维护的钥匙在安装软件时会核对这个钥匙中的信息和安装软件的信息是否匹配以此避免软件包伪造与篡改。长时间未同步系统时会先执行此钥匙确保不会误判平时直接Syu即可3.2 获取Pacman镜像reflector -a 12 -c cn -f 10 --sort rate -v --save /etc/pacman.d/mirrorlist # --age 更新时间 # --country 指定国家 # --fastest 最快的4.硬盘分区策略在这里我把启动分区放到windows的分区里也就是硬盘中只有一个EFI分区。启动分区的大小已经被windows固定了我会将启动分区挂载到/efi下。我们不需要swap分区会用swap文件代替。根据以上我们的所有空间都会分配给根分区用btrfs文件系统在根分区有两个子卷保证快照不会把文件一起回档。最后我们分析出了全部的分区策略全部空间全部分配给btrfs的分区挂载根分区。创建两个子卷1.|/ 2. home|/home在Linux里挂载EFI分区到/efi下5.执行硬盘分区5.1 查看当前分区情况lsblk -pf # 列出所有硬盘以及分区、文件系统的情况 fdisk -l /dev/[设备名] # 详细查看某块硬盘的分区情况等详细信息 cfdisk /dev/[设备名] # 可以看到事先准备的free空间5.2 分区使用cfdisk来分区全部空闲空间-btrfs类型再次lsblk -pf确认分区正确之后格式化分区mkfs.btrfs [分区号] # 格式化分区创建btrfs文件系统5.3 创建与挂载子卷和ESP先挂载btrfs到/mnt下mount -t btrfs /[分区号] /mnt # --type 文件系统类型创建root和home子卷btrfs subvolume create /mnt/ btrfs subvolume create /mnt/home取消根分区的挂载重新挂载root和home子卷以及ESP# 取消挂载 umount /mnt # 重新挂载root子卷 mount -t btrfs -o subvol/,compresszstd,noatime,ssd /[分区号] /mnt # 挂载home子卷 mount --mkdir -t btrfs -o subvol/home,compresszstd,noatime,ssd /[分区号] /mnt/home # 挂载esp mount --mkdir /[分区号] /mnt/efi6.正式安装pacstrap -K /mnt base base-devel linux-zen linux-firmware btrfs-progs pacstrap /mnt networkmanager vim neovim sudo intel-ucode生成fstab文件用于启动系统时自动完成挂载genfstab -U /mnt /mnt/etc/fStab进入新系统root后配置使用arch-chroot /mnt命令可以进入新安装的系统1.基础配置1.0 重新安装yazi可选1.1 设置时区ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #也可以用以下命令 timedatectl set-timezone Asia/Shanghai之后调整时间误差hwclock --systohc1.2 设置本地化找到并编辑/etc/locale.gen文件将en_US和zh_CN的UTF-8版本激活运行locale-gen命令生成本地化文件编辑/etc/locale.conf文件编辑写入ANGen_US.UTF-8设置全局本地化英文1.3 设置主机名编辑/etc/hostname键入一个喜欢的主机名1.4 设置root密码使用命令passwd键入密码即可2.设置bootloader安装grubpacman -S grub efibootmgr安装grub引导grub-install --targetx86_64-efi --efi-directory/efi --boot-directory/efi --bootloader-ideris创建符号链接可选但推极荐ln -s /efi/grub /boot/grub创建grub的配置文件grub-mkconfig -o /boot/grub/grub.cfg3.配置双系统Pacman安装os-prober运行os-prober尝试找到windows的EFI文件编辑/etc/default/grub找到以下项loglevel5 GRUB_...._OS_PROBERfalse # 这个在最后一行再次创建grub的配置文件grub-mkconfig -o /boot/grub/grub.cfg4.配置zram确保必要软件的安装pacman -S zram-generator编辑配置文件/etc/systemd/zram-generator.conf输入以下内容[zram0] zram-size ram # 表示设置成内存大小 compression-algorithm zstd # 设置压缩算法编辑grub的源文件/etc/default/grub设置以下条目loglevel5 zswap.enabled0再次创建grub的配置文件grub-mkconfig -o /boot/grub/grub.cfg5.重启进入系统exit退出reboot重启开启NetworkManager系统服务systemctl enable --now NetworkManagernmtui联网安装fastfetch和cmatrixpacman -S fastfetch cmatrix歇一会庆祝一下