美文网首页
Archlinux安装(Wiki方式)

Archlinux安装(Wiki方式)

作者: 孤城恨寒 | 来源:发表于2018-11-14 22:16 被阅读0次

    按照 Archlinux Wiki 安装,并结合网上现有的文档进行了梳理。个人在进行双系统的 grub 部署时,windows系统启动项一直无法生成,最后仔细查阅Wiki后解决。另外中文的Wiki有些地方翻译不够准确,可对比英文食用。

    一、安装准备

    下载并引导安装介质。启动完成后将会自动以 root 身份登录虚拟控制台并进入 Zsh 命令提示符。

    键盘布局 (使用默认即可)

    控制台键盘布局默认为 us(美式键盘映射)。列出所有可用的键盘布局,可以使用:

    # ls /usr/share/kbd/keymaps/**/*.map.gz
    

    如果您想要更改键盘布局,可以将一致的文件名添加进,但请省略路径和扩展名。比如,要添加 German键盘布局:

    # loadkeys de-latin1
    

    验证启动模式

    如果以在 UEFI 主板上启用 UEFI 模式,Archiso 将会使用 systemd-boot 来 启动 Arch Linux。可以列出 efivars 目录以验证启动模式:

    # ls /sys/firmware/efi/efivars
    

    如果目录不存在,系统可能以 BIOS 或 CSM 模式启动。如下图


    image

    连接到因特网

    守护进程 dhcpcd 已被默认启用来探测 有线网络设备,并会尝试连接。如果未启用,可手动启用:

    # dhcpcd
    

    可以使用 ping 验证连接是否正常:

    # ping archlinux.org
    

    如果没有可用网络连接,利用 systemctl stop dhcpcd@网络接口,TAB 停用dhcpcd 进程,网络接口 名可以通过 Tab补全。要加载驱动配置网络等,查看Wiki。

    更新系统时间

    可以先使用 timedatectl status 检查服务状态,查看时间是否准确。
    如果时间有问题,使用 timedatectl 确保系统时间是准确的:

    # timedatectl set-ntp true
    

    建立硬盘分区

    1、查看磁盘情况

    磁盘若被系统识别到,就会被分配为一个 块设备,如 /dev/sda 或者 /dev/nvme0n1。可以使用 lsblk 或者 fdisk 查看存储设备情况:

    # fdisk -l
    

    结果中以 romloop 或者airoot 结束的可以忽略。

    2、分区方案

    对于选择安装系统的磁盘,采用如下分配方案基本满足需求:

    • 一个根分区(挂载在根目录,必须)/;
    • 一个home分区 (建议进行分区);
    • 交换分区,Swap可以在一个独立的分区上设置,也可以直接建立 交换文件
    • 如果使用UEFI/GPT 模式引导,必须有一个 EFI 引导分区(如果安装了其他UEFI引导的系统,则记下其EFI分区路径。如果是全新的硬盘则需要新建一个EFI的引导分区)
    3、建立分区

    建立分区,可以使用 fdisk 或 parted。例如使用 fdisk进入分区状态

    # fdisk /dev/sda
    

    **注意: **如果需要需要创建多级存储例如 LVM、disk encryption 或 RAID,请在此时完成。

    1. 建立分区表:先执行# fdisk /dev/sda,之后按 o建立分区表
    2. 进行分区(一般建立 / , /swap , /home三个分区):执行 n ,依次选择主分区、扩展分区,第几分区,起始扇区,结束扇区或者直接使用 +30G设置分区为30G大小。
    3. 如需修改分区类型:执行t,将swap分区类型改为Linux Swap类型。
    4. 保存分区。保存之前可输入p查看分区结果,确认无误执行w保存分区。
      image.png

    格式化分区

    当分区建立好了,这些分区都需要使用适当的 文件系统 进行格式化。例如将 /dev/sda1 格式化成 ext4,可以运行:

    # mkfs.ext4 /dev/sda1
    

    如果您创建了交换分区(例如 /dev/sda3),使用 mkswap 将其初始化:

    # mkswap /dev/sda3
    # swapon /dev/sda3
    

    分别根据分区类型进行格式化。

    挂载分区

    首先将根分区 挂载 到 /mnt,例如:

    # mount /dev/sda1 /mnt
    

    如果使用多个分区,还需要为其他分区创建目录并挂载它们(/mnt/boot、/mnt/home 等,swap不需要挂载)。

    # mkdir /mnt/boot
    # mount /dev/sda2 /mnt/boot
    

    接下来 genfstab 将会自动检测挂载的文件系统和 swap 分区。

    二、安装

    选择镜像

    文件 /etc/pacman.d/mirrorlist 定义了软件包会从哪个镜像源下载。在列表中越前的镜像在下载软件包时有越高的优先权。修改文件 /etc/pacman.d/mirrorlist,并将地理位置最近的镜像源挪到文件的头部。这个文件接下来还会被 pacstrap 拷贝到新系统里,所以请确保设置正确。
    找到标有China的镜像源,normal模式下按下dd可以剪切光标下的行,按gg回到文件首,按P(注意是大写的)将行粘贴到文件最前面的位置(优先级最高)。其他源:

    Server = http://mirrors.163.com/archlinux/$repo/os/$arch
    Server = http://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch
    

    安装基本系统

    使用pacstrap脚本,安装 basebase-devel包组:

    # pacstrap /mnt base base base-devel
    

    base-devel也可以在#Chroot之后使用pacman 手动安装软件包或组:

    # pacstrap -i /mnt base base-devel
    

    三、 配置系统

    Fstab

    用以下命令生成 fstab文件 (用 -U-L 选项设置UUID 或卷标):

    # genfstab -U /mnt >> /mnt/etc/fstab
    

    强烈建议 在执行完以上命令后,后检查一下生成的 /mnt/etc/fstab 文件是否正确。

    # nano /mnt/etc/fstab
    
    image.png

    Chroot

    Change root到新安装的系统:

    # arch-chroot /mnt
    

    时区

    设置时区

    # ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
    

    例如:

    # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    

    运行 hwclock以生成 /etc/adjtime

    # hwclock --systohc
    

    这个命令假定硬件时间已经被设置为 UTC时间

    本地化

    本地化的程序与库若要本地化文本,都依赖 Locale,后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。在下面两个文件设置:locale.genlocale.conf
    /etc/locale.gen 是一个仅包含注释文档的文本文件。指定您需要的本地化类型,只需移除对应行前面的注释符号()即可,建议选择带 UTF-8 的项:

    # nano /etc/locale.gen
    

    en_US.UTF-8 UTF-8
    zh_CN.UTF-8 UTF-8
    zh_TW.UTF-8 UTF-8

    接着执行 locale-gen 以生成 locale 讯息,/etc/locale.gen 会生成指定的本地化文件。:

    # locale-gen
    
    生成locale
    创建 locale.conf 并编辑 LANG 这一 变量,比如:
    # nano /etc/locale.conf
    

    LANG=en_US.UTF-8

    Tip: 将系统 locale 设置为 en_US.UTF-8,系统的 Log 就会用英文显示,这样更容易问题的判断和处理。不推荐在此设置任何中文 locale,会导致 TTY 乱码。
    另外,如果你需要修改键盘布局,并想让这个设置持续生效,编辑vconsole.conf,例如:

    # nano /etc/vconsole.conf
    

    KEYMAP=de-latin1

    主机名

    要设置 hostname,将其 添加/etc/hostnamemyhostname 是需要的主机名:

    # nano /etc/hostname
    

    myhostname

    并且添加 对应的信息hosts

    # nano /etc/hosts
    

    127.0.0.1 localhost
    ::1 localhost
    127.0.1.1 myhostname.localdomain myhostname

    如果机器有一个永久的 IP 地址,请使用这个 IP 而不是 127.0.1.1

    网络配置

    对新安装的系统,需要再次设置网络。具体请参考Wiki Network configuration
    对于 无线网络配置安装 软件包 iwwpa_supplicantdialog 以及需要的 固件软件包

    Initramfs

    你通常不需要创建 initramfs,因为在你执行 pacstrap 时已经安装 linux,这时 mkinitcpio会被自动运行。
    如果修改了 mkinitcpio.conf ,用以下命令创建一个 Initramfs:

    # mkinitcpio -p linux
    

    Root 密码

    设置 Root 密码 :

    # passwd
    

    安装引导程序

    你需要安装 Linux 引导程序以在安装后启动系统,你可以使用的的引导程序在 启动加载器 中,请选择一个并且安装并配置它,比如 GRUB
    如果你使用 Intel 或者 AMD 的 CPU,那么需要 启用微码更新

    1. 安装 os-prober 包 (多系统引导需要安装)
    # pacman -S os-prober
    
    1. 安装 grub 包:
    # pacman -S grub
    
    1. 部署 grub (下面仅为BIOS方式):
    # grub-install --target=i386-pc /dev/sdx
    

    Note:

    • --target=i386-pc指示grub-install是为使用BIOS的系统安装.
    • /dev/sdx 是已经完成 分区 的磁盘,grub 将安装到它上面。
    1. 生成配置文件:
    # grub-mkconfig -o /boot/grub/grub.cfg
    

    Note: 如果是安装多系统引导:

    • 必须安装第1步 os-prober
    • 并且mount其他系统所在的磁盘的引导分区(例如:/dev/sda1)
      之后grub-mkconfig 才可以自动搜索已经安装的其它系统并添加到启动菜单。一般出现在其他已安装系统在别的磁盘的情况。个人卡在这一步,并且找了好多文档,都没有提到提到这一步。
    • 如果还是没有生成其他系统的入口,可能是处于U盘安装环境下无法检测到其他系统的入口,请重启登陆之后重新运行第4步命令。如下图,请核对是否搜索到所有系统:


      生成配置文件

    四、重启

    输入 exit 或按 Ctrl+D 退出 chroot 环境。
    可选用 umount -R /mnt 手动卸载被挂载的分区:这有助于发现任何「繁忙」的分区,并通过 fuser 查找原因。
    最后,通过执行 reboot 重启系统,systemd 将自动卸载仍然挂载的任何分区。不要忘记移除安装介质,然后使用 root 帐户登录到新系统。

    相关文章

      网友评论

          本文标题:Archlinux安装(Wiki方式)

          本文链接:https://www.haomeiwen.com/subject/xbafzftx.html