程序员我用 Linux

在Dell XPS上安装Arch Linux和Win10双系统

2018-02-27  本文已影响0人  _lambda_

去年黑五入手了XPS 15 9560后一直在用随机自带的Win10系统,分出一部分硬盘安装ArchLinux。上周末抽空把win10和arch全部重新安装了一遍,安装过程其实很简单,也很顺利,与以前不同的是,这次是先安装的arch,后装的win10。

为什么选择Archlinux

Archlinux作为主系统使用已经有段时间了。之前我的主力系统则是Debian。我不怎么用windows,但还都是决定留它在我的笔记本上(除了Mac本)。Linux的发行版众多,我最熟悉的是Debian,CentOS和Arch。几乎所有的虚拟主机提供商都提供默认安装CentOS或/和Debian,之前的买的VPS(用途你懂的)都是用的Debian,工作主要用Mac OSX,Archlinux是作为备机存在。

选择Archlinux的主要原因有两点:

安装前准备

在安装linux前,有些BIOS选项需要修改下设置,开机按F2进入BIOS,

硬盘分区及挂载

实际上上周末我重装了两次,第一次是先安装Win10,然后安装Arch。在安装Win10过程中,分区工具默认会有几个几百MiB的恢复分区,ESP分区却只有100M,一开始我没太在意。Win10安装完毕,继续安装Arch时,我决定删掉装好的Win10,用 GParted 重新分区,512M的ESP分区,200G给Arch,剩下的空白给Win10。原来以为win10还会自动生成几个恢复分区,也有点担心Win10的分区工具怎么处理512M的ESP分区。结果Win10识别出了512M的ESP分区,理所应当,但没有继续划分恢复分区。另外,Linux和Win10分区间要留一定的空白,Win10的分区工具会自动处理这一点,我很满意,恩。
关于ESP分区,可以参考这里
插入USB启动盘,开机,启动时按F12(不是F2),选择USB盘启动。启动后会进入命令行模式。分区命令如下

# parted /dev/nvme0n1

进入parted交互模式, 首先确保分区表格式为GPT,然后划分512M的ESP分区,并设置为可启动。划分200G的ext4分区给Arch,剩下的不动给Win10。

(parted) mklabel gpt
(parted) mkpart ESP fat32 1MiB 513MiB
(parted) set 1 boot on
(parted) mkpart primary ext4 513MiB 200.5GiB

格式化ESP和Ext4分区

# mkfs.fat -F32 /dev/nvme0n1p1
# mkfs.ext4 /dev/nvme0n1p2

安装完win10后的硬盘分区图如图


partition.png

关于ESP分区的挂载点有几种方式,我选择挂载到/boot/efi,这种方式最简单,问题最少。
挂载命令如下

# mount /dev/nvme0n1p2  /mnt
# mkdir -p /mnt/boot/efi
# mount /dev/nvme0n1p1 /mnt/boot/efi

连接到网络

由于xps没有有线接口,联网设置比较麻烦。archiso自带了wpa_supplicant工具。由于我的wifi设置为隐藏ssid,配置选项更多一些, 如下,也可以下载这个gist

update_config=1
ap_scan=2
ctrl_interface=/var/run/wpa_supplicant

network={
    mode=0
    scan_ssid=1
    proto=WPA2
    key_mgmt=WPA-PSK
    pairwise=CCMP
    group=CCMP
    ssid="<your ssid>"
    psk="<your password>"
}

默认的无线设备名为 wlp2s0, 可以通过iw dev确定。无误后运行wpa_supplicant -iwlp2s0-Dwext -c wpa_supplicant.conf -d,如果没有什么报错,运行wpa_supplicant -iwlp2s0 -Dwext -c wpa_supplicant/wpa_supplicant.conf -B进入后台运行。如果路由器为dhcp模式,运行dhcpcd就ok了 dhcpcd wlp2s0。我的路由器为静态模式,后面要用ip工具,具体请参考相关wiki页面

安装Archlinux

连接网络和挂载硬盘,两个没有先后。完成这两个步骤后就开始安装了。

/etc/hostname
--------
xhorn.me
/etc/hosts
--------
127.0.0.1   localhost
::1     localhost
127.0.1.1   xhorn.me.localdomain    xhorn.me

安装系统引导工具

这一步骤其实是系统安装的一部分,单独列出来是因为它是安装双系统的关键。随着我在MBP上选择Arch代替Debian,系统引导工具也从Grub2换到了Refind。折腾过几次grub引导Mac OSX或Windows后,发现rEFInd是最简单,最无痛的,它能自动发现磁盘上的其他Mac或Win系统。

# pacman -S refind-efi
# refind-install

最重要的是配置文件/boot/refind_linux.conf中的内核参数,一并贴到这里,以后会有详细介绍

/boot/refind_linux.conf
-------
"Boot with standard options"  "root=UUID=<your uuid of root partition> rw quiet acpi_rev_override=1 initrd=/boot/initramfs-linux.img initrd=/boot/intel-ucode.img enable_psr=1 disable_power_well=0 nvme_core.default_ps_max_latency_us=130000" 
"Boot to single-user mode"    "root=UUID=<your uuid of root partition> rw quiet acpi_rev_override=1 single"
"Boot with minimal options" "ro root=/dev/<your root partition name>"

安装完系统引导器之后就可以Ctrl+D退出chroot环境,然后reboot了,但是我遇到的情况是,arch关机失败,只能长按开机键强制关机。

安装windows 10

安装完Arch,如果开机能看到Refind的启动引导界面,并且可以进入到linux命令行登陆界面,恭喜你,Arch基本系统是安装好了。Arch系统后面还有很多工作要做,在那之前,先把Windows10安装好,双系统就搞定了。

根据这里的说明,我在安装前只下载了ssd的驱动, 链接f6flpy-x64.zip,wifi的驱动windows10自带的就能够工作(其实我下载的win10安装盘自带的SSD驱动能工作,只是预防性的照做了)。

插入制作好的Win10USB启动盘,开机按F12(不是F2),选择USB启动盘启动,启动后一个蓝色界面(不是蓝屏_),点安装,选择自定义安装(Custom Install Windows only (advanced)),再后面是选择硬盘界面,如果没有显示可选的硬盘,就需要加载驱动了,那么上面的SSD驱动就有用了,把上面的zip文件解压到另一个U盘,点那个加载驱动(Load Driver)按钮,找到另一个U盘上解压后的文件夹,安装好后就会显示可安装的硬盘了,把SSD剩下的磁盘空间格式化,开始安装,剩下的就是一路Next了。

最后设置

Windows10安装好以后,会在 UEFI NVRAM添加一个启动选项,优先于refind,这要去BIOS里去设置启动优先顺序(Setting>general>boot sequence)。把refind调整到Windows Boot Manager之上。(不要删掉Windows Boot Manager,启动win10之后,win10会自动添加回去,还在refind之上,所以只能调整启动顺序)如上说的,refind会自动发现windows10,其他什么设置也不用管,相比之前grub启动windows,简单不要太多。最后上图~


screenshot_001.png
上一篇 下一篇

猜你喜欢

热点阅读