Skip to content

⚠ The whole repository is written in Chinese and I'm no plans to add other languages support. But contributions are welcome.

License

Notifications You must be signed in to change notification settings

supdrewin/linux-tutorials

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✨ Supdrewin's Linux Tutorials ✨

必要准备

  • 宿主机:Debian sid (非必要,其他 Linux 发行版也行)
  • 实验环境:Arch Linux

说明 (关于宿主机):

这里 宿主机 指的是你连接电源进入的第一个操作系统。

  • 如果是 Arch Linux,可以跳过本章
  • 如果是 macOS 或 Windows,使用这篇 安装虚拟机 代替本章
  • 如果是 FreeBSD,以后会介绍它的 Linux 兼容模块
  • 其他非 Linux 系统,暂时没想到,先双系统吧

环境搭建

  1. 下载 Arch Linux 最新的 bootstrap 压缩包

    当前最新为 archlinux-bootstrap-2022.04.01-x86_64.tar.gz

    此处建议使用离自己最近的镜像站点下载。

    或者使用我打包好的 最小化版本 rootfs.tar.xz,此存档的 Arch Linux 根文件系统只包含 必要软件包 (无内核及开发工具)。

  2. 解压缩

    $ sudo tar xf rootfs.tar.xz

    解压后我们将得到一个名为 rootfs 的文件夹,此文件夹稍后用于模拟一个新的根文件系统。

    注意,此处我们需要提升权限以便解压后的 rootfs 权限正确,并且以后要修改 rootfs 里的系统文件也需要 root 权限。

  3. 必要配置

    1. 从宿主机拷贝一份 resolv.conf,以便实验环境下能正常解析域名。

      $ sudo cp /etc/resolv.conf rootfs/etc
    2. 从宿主机拷贝一份 locale.gen,待会进入实验环境接着设置。

      $ sudo cp /etc/locale.gen rootfs/etc
    3. 配置软件安装源:

      $ sudo bash -c 'echo Server = https://mirrors.ustc.edu.cn/archlinux/\$repo/os/\$arch >>rootfs/etc/pacman.d/mirrorlist'

      注意,此处使用单引号防止命令在外层被转义。

  4. 进入实验环境

    此处使用我已经写好的 Shell Script

    $ ROOTFS=rootfs SHELL=bash ./run.sh

    此时我们只有 bash,如果你使用其他 Shell (比如 zsh,fish...),则 SHELL=bash 必须被设置。

    完成上一步的 2,生成 locale

    $ locale-gen

    同时我们需要调整时区使时间正确 (可以输入 date 确认当前时间是否正确),这里我们使用 ln 强制 (-f) 创建一个符号链接 (-s)。

    $ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  5. 配置 pacman

    尝试安装 基础开发工具

    $ pacman -Syu base-devel

    下载完后提示此错误:

    警告:找不到公钥环。你执行 'pacman-key --init' 了吗?

    接着我们按照警告的提示执行那条命令,但是——

    重新安装还是会失败,因为我们在完成初始化之后还应该 重新加载默认密匙

    以下给出完整步骤:

    $ pacman-key --init
    $ pacman-key --populate

    不出意外之后再次尝试安装一切顺利。

    $ pacman -S base-devel

总结

到此实验环境搭建就告一段落了,🎉 以后我们将会继续使用这个 chroot 的 Arch Linux 环境进行实验,并且会对本节一些令人迷惑的地方进行扩充。

跳转

下一个:第 00 章

About

⚠ The whole repository is written in Chinese and I'm no plans to add other languages support. But contributions are welcome.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages