ArchLinux安装配置流程
文章目录
1.说明
此流程用于在一块单独硬碟、USB储存设备中配置一个ArchLinux系统。
为何是ArchLinux?
我自己同时在使用的操作系统有好多,家里玩游戏的win10,去校区办公、敲代码的是MacbookPro,中学笔记本是Kubuntu(之前装过Manjaro被主板驱动劝退了),实验设备都是猕猴桃派(RaspberryPiOS和UbuntuServer18.04-ROSMelodic)系统玩的多了都会发觉一个问题,发行版操作系统的预装以及linux上python2的尸体问题很让人头痛。其实有办法卸载删掉,并且总感觉很臃肿,并且永远的会留下隐患linux安装 分区,非常是Python2的问题。我早已无数次被坑在ROS、PX4、Ardupilot编译报错上了linux系统入门学习,8成的缘由是Python多版本打人。所以就选了Arch,其实也是在尝试和学习,不过从零到1的过程很实用,但是一步一步只添加须要的软件这是最重要的。
为何要写这个教程?
能找到的文字版教程不能满足我的需求,我须要一个可以随时带走的ArchLinux,既可以保护笔记本原有系统不用做任何删掉处理,又可以保证一旦安装失败不会导致额外的损失。搜了好多Arch安装在联通设备的教程。但这种教程真的太难用了,不是各类转载造成的教程不详尽,就是借助虚拟机设备安装配置(对于一个拒绝虚拟机的人来说简直太痛楚了)。我又不想直接看wiki(wiki内容非常强悍,而且你要耐心的把每一步看完而且对linux系统整个构架有一定了解才行)。下边这个教程相对于你一步步看wiki会简单粗鲁的多,帮你把很多坑都太好了。
2.打算工作——ArchLinuxLive制做过程
安装前打算:
使用balenaEtcher或则其他的可以将iso镜像烧写在usb储存的软件
首推balenaEtcherLink这个是开源免费的。另外提醒一句,一定要更新到最新的stable版,要不然烧写可能失败。
3步操作:1、选择镜像;2、选择USB储存;3、烧录
3.ArchLinux安装配置
将上一步中制做完成的ArchLinuxLiveUSB和打算装系统的硬碟联接笔记本,BootMenu中选择ArchLinuxLiveUSB,选择第一个步入ArchLinuxLive
3.1第一步:硬碟分区
首先查看硬碟相关信息
$ fdisk -l
找到用于安装arch的硬碟名子通常为/dev/sdX注意:sdX可能是任意名子完全取决于fdsik指令后复印的列表内容,下边均以sdX为例
说明:硬碟格式MBR或则GPT须要进行二选一完全取决于以后以哪种方法进行启动;这儿推荐GPT,前面配置容许此硬碟既可以UEFI,又可以Legacy启动。
硬碟磁道设置
$ dd if=/dev/zero of=/dev/sdX bs=1k count=2048
设置硬碟为GPT注意:此处使用sgdisk指令,也可以fdisk分区,须要教程自行度娘
$ sgdisk -z /dev/sdX
$ sgdisk -o /dev/sdX
设置分区
$ sgdisk -n 1:0:409600 #创建一个200M分区 挂在/boot 用于启动
$ sgdisk -n 2:409601:17186817 #创建一个SWAP分区 这里大小为8G 根据需要自行修改
$ sgdisk -n 3:17186818:-0 #创建一个文件跟目录分区 挂在/
对分区进行低格注意:sdX1代表刚刚的分区方法
$ mkfs.fat -F32 /dev/sdX1 #第一个分区设置为FAT32格式 即UEFI必须的ESP
$ mkfs.swap /dev/sdX2 #第二个分区是SWAP交换空间
$ mkfs.ext4 /dev/sdX3 #第三个分区是Linux的文件分区 ext4
3.2分区挂在
将对应分区进行挂载
$ mount /dev/sdX3 /mnt #挂载根目录
$ mkdir /mnt/boot/efi #创建引导目录
$ mount /dev/sdX1 /mnt/boot #挂载引导分区
$ swapon /dev/sdX2 #挂载swap空间
3.3安装基本系统
$ pacstrap /mnt base
# 其他的包——推荐一下 直接添加到 base 后面即可
linux linux-firmware base-devel nano dialog git sudo
# hostname
inetutils
# 网络管理
dhcpcd wpa_supplicant
说明:最简化的只须要base,前面可以按照自己须要添加更改。诸如不用nano,用vi就可以直接添加vi而不写nano。下边是官方wiki对base的解释
3.4配置系统
$ genfstab -U -p /mnt >> /mnt/etc/fstab
3.5使用chroot进行基本配置
chroot是超级用户权限相当于系统开发商,使用chroot之后算是即将步入硬碟开始配置你的专属arch了。
$ arch-chroot /mnt
# 开始
# 设置 root 的密码
$ passwd
#设置时区
$ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#本地化
$ cd /etc
$ locale-gen
$ nano /etc/locale.conf #如果是vi 就运行 vi /etc/locale.conf
## 添加 这里暂时都设置为英文,可以设置中文但是容易导致后续出错,后续可再更改
LANG=en_US.UTF-8
# LC_CTYPE= en_US.UTF-8 # 此处可不添加,如果之后安装了sublime text安装后运行软件会提示你需要设置 LC_CTYPE
## 键盘布局
$ nano /etc/vconsole.conf
KEYMAP=de-latin1
#设置主机名
$ nano /etc/hostname
myhostname(主机名)
$ nano /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname # 主机名.本地域名 主机名
# Initramfs
$ mkinitcpio -p linux # 如果报错 请检查/xxxx/linuxxx
# 有线网络设置
$ systemctl enable dhcpcd
#普通用户的添加
$ useradd -m -G wheel -s /bin/bash [username]
$ passwd [username]
$ nano /etc/sudoers
# 去掉下面这行#符号
#%wheel ALL=(ALL) ALL
# 并在 root ALL=(ALL:ALL) ALL这行下面添加
[username] ALL=(ALL:ALL) ALL
3.6系统引导配置
此处很关键,可选的有好多,须要的看wiki
推荐Clover,GRUB,Syslinux。Clover就不用说了,黑苹果首推clover引导。GRUB最常见的引导方法,兼容性最好的选择。Syslinux有较好的兼容性。这儿我只须要对syslinux和GRUB进行二选一,其他的请自行移步wiki。
3.6.1Syslinux
#安装syslinux
$ pacman -S syslinux
启动流程
右图为官方wiki对启动流程的描述查看linux是什么系统,具体过程可理解可不理解,并且通过官方描述检测对应引导文件夹中是否缺位必要的启动的文件
必要文件列表:
Legacy启动
#BIOS 配置
$ mkdir /boot/syslinux
$ cp -r /usr/lib/syslinux/bios/* /boot/syslinux/
$ sgdisk /dev/sdX1 --attributes=1:set:2
$ sgdisk /dev/sdX1 --attributes=1:show
------------------------------------
1:2:1 (legacy BIOS bootable)
$ dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/sdX
$ extlinux --install /boot/syslinux
$ nano /boot/syslinux/syslinux.conf
UEFI启动
$ mkdir -p /boot/EFI/syslinux
$ cp -r /usr/lib/syslinux/efi64/* /boot/EFI/syslinux/
$ cd /boot/EFI
$ mv syslinux boot
$ cd boot
$ mv syslinux.efi bootx64.efi
$ nano /boot/syslinux/syslinux.conf
配置文件设置
* BIOS: /boot/syslinux/syslinux.cfg
* UEFI: esp/EFI/syslinux/syslinux.cfg
--------------------------------------------------------------------------------------
UI menu.c32
# UI vesamenu.c32
PROMPT 50
DEFAULT arch
MENU TITLE Boot Menu
# MENU BACKGROUND splash.png 图片link(https://gitlab.archlinux.org/archlinux/archiso/-/tree/master/configs/releng/syslinux/splash.png)
TIMEOUT 50
MENU RESOLUTION 800 600 # 万用分辨率
MENU WIDTH 78
MENU VSHIFT 10
MENU HSHIFT 10
MENU MARGIN 4
MENU ROWS 5
MENU TIMEOUTROW 13
MENU TABMSGROW 11
MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29
# Refer to https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32
MENU COLOR border 30;44 #40ffffff #a0000000 std
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
#注意:对每一个 LABEL 记录, APPEND 命令只能出现在一行内(就是说,把命令拆分成多行是无效的)。
LABEL arch
LINUX ../vmlinuz-linux
APPEND root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw #此处强烈建议用UUID 这样不会报错
INITRD ../initramfs-linux.img
LABEL archfallback
LINUX ../vmlinuz-linux
APPEND root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw
INITRD ../initramfs-linux-fallback.img
...
LABEL windows
MENU LABEL Windows
COM32 chain.c32
APPEND mbr:0xffffffff #0xffffffff 通过指令fdisk -l 中widows 硬盘中Disk identifier 中的信息进行更改
...
#内存测试
...
LABEL memtest
MENU LABEL Memtest86+
LINUX ../memtest86+/memtest.bin
...
#硬盘检测工具
LABEL hdt
MENU LABEL Hardware Info
COM32 hdt.c32
#保证对应的syslinux文件夹下包含多有的*.c32和lib*.c32文件
#需要显示PCI总线信息,将 /usr/share/hwdata/pci.ids 复制到 */syslinux/pci.ids
LABEL reboot
MENU LABEL Reboot
COM32 reboot.c32
LABEL poweroff
MENU LABEL Power Off
COM32 poweroff.c32
MENU CLEAR #当退出时清空屏幕
以上的大部份人可能会用到的配置,其他的配置请参考wiki
3.6.2GRUB
GRUB全称 是GRandUnifiedBootloader。这儿指的GRUB似乎是GRUB2并不是GRUBLegacy,GRUBLegacy不支持UEFI启动。
首先安装grub和efibootmgr
$ pacman -S grub efibootmgr
安装grub
$ grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=Arch
注意此处esp应当是/dev/sdX1具体依据你自己的盘进行更改
3.生成配置文件
$ grub-mkconfig -o /boot/grub/grub.cfg
说明假如须要多系统请参考wiki中的配置说明。GRUBWIKI
由于我的联通硬碟同时装了4个linux(后续会发文章,(链接坑))所以我在对每位linux的gurb的默认文件进行了更改每位linux的grub默认文件都在/etc/default/grub中,具体修改了两项:
GRUB_DEFAULT="6>7" #此处数字标示次Linux相关选项在grub列表中的位置
GRUB_CMDLINE_LINUX_DEFAULT="text" #默认一般为quiet splash即不打印启动信息,使用过场动画,此处可以不修改 但是如果第一次启动出现问题或者卡黑屏了你就什么错误信息就都不知道了
另外grub.cfg这个文件不建议第一尝试的人自动更改,一旦改错对应启动选项就不可用了。假如你是前辈,更改完保存后别忘了运行sudoupdate-grub。
3.6.3小结
目前使用syslinux进行了BIOS测试完全没有问题,GRUB之安装了UEFI测试完全没问题。
3.7退出&重启
完成以上配置之后,你已然拥有了一个带引导的ArchLinux。
$ exit # 退出chroot
$ umount -R /mnt # 卸载之前挂在的目录
$ reboot
最基本的配置已然完成了。以后就可以重启linux安装 分区,从bootmenu中启动你的ArchLinux了。
4.小结
下一篇将述说怎么自定义桌面环境以及一些基础软件推荐。
参考链接