原创文章,转载请注明出处
https://qiedd.com/

参考教程

ArchISO Wiki

Install Arch Linux via SSH

已构建的镜像

2021.12.7

Users and passwords

Cloud-init

默认密码:qiedd.com

简介

有时候我们的服务器没有VNC,如果直接使用 grub-imagebot 来起动 ISO ,会导致无法连接

因此我们需要自定义 ArchISO 镜像来给它设置密码

这里我们介绍两种方法,分别是 Cloud-init 和 直接设置密码

Cloud-init 需要特定环境下才支持,如PVE中的虚拟机,物理机不支持

注意腾讯云不支持 Cloud-init!

安装依赖

Archiso 附带2个预定义配置(profiles): releng 和baseline。

releng用于创建正式的每月安装ISO。它可以作为创建自定义ISO映像的起点。
baseline是一种最低限度的配置,它只包括从介质启动实时环境所需的最低限度的软件包。

# 安装依赖
sudo pacman -S archiso cloud-init

# 将需要构建的东西拷过来
cp -r /usr/share/archiso/configs/releng archiso

添加用户密码

Arch 官方 Wiki

# 进入目录
cd archiso/airootfs/etc

# 生成密码
openssl passwd -6

*** 示例 ***
Password: 
Verifying - Password: 
$6$uCDWmOc/ZnBsik4c$kQPPr1uB2ggdrkXRJhtampE5TwRy3nL5ym/l1lBKeuw3Y3n3kc/ZxjBq.RVgZRqybxQPspTIn81WIVfQpDbP40

# 设置密码,把生成的hash添加到第一和第二个冒号的中间
vim shadow

*** 示例 ***
root:$6$uCDWmOc/ZnBsik4c$kQPPr1uB2ggdrkXRJhtampE5TwRy3nL5ym/l1lBKeuw3Y3n3kc/ZxjBq.RVgZRqybxQPspTIn81WIVfQpDbP40:14871::::::

# 回到构建根目录
cd ~/archiso

# 构建镜像需要sudo权限
sudo mkarchiso -v -w /tmp/archiso  .

Cloud-init

Arch 官方 Wiki

# 进入构建目录
cd archiso

# 创建Cloud-init所需的环境
mkdir -p airootfs/var/lib/cloud/seed/nocloud/

# 进入目录
cd airootfs/var/lib/cloud/seed/nocloud/

# 创建meta-data,此项可以为空
printf "" > meta-data

# 创建user-data,默认密码为qiedd.com
## 这里的“#cloud-config”不是注释,必须加上
vim user-data

*** 示例 ***
#cloud-config
users:
  - name: root
    plain_text_passwd: 'qiedd.com'
    lock_passwd: false


# 回到archiso目录中
cd ~/archiso

# 构建镜像需要sudo权限
sudo mkarchiso -v -w /tmp/archiso  .

上传 ./out 中的iso

使用 Grub-imageboot 启动镜像

请注意替换下方的链接

如果是其他服务商的机子,请去而内存是否足够,经测试 1G 内存是不够的,最低可能需要 1.2 G

请注意,使用 Grub 启动镜像会将其在内存中加载,请确认内存是否足够容纳下 ArchISO,并有足够空间启动内核!!

# 安装grub-imageboot
apt install grub-imageboot

# 创建一个目录用于存放镜像
mkdir /boot/images

# 进入目录
cd /boot/images

# 下载Archiso
wget https://dl.qiedd.com/Linux/custom/user/archlinux-2021.12.07-x86_64.iso

# 更新grub
update-grub2

*** 示例 ***
root@VM-20-12-debian:~# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.19.0-11-amd64
Found initrd image: /boot/initrd.img-4.19.0-11-amd64
Found memdisk: /boot/memdisk
Found iso image: /boot/images/archlinux-2021.12.07-x86_64.iso
done

# 这里我们的iso在第三项,因此需要调整下grub的默认启动项
# 0是第一项
vim /etc/default/grub

*** 示例 ***
GRUB_DEFAULT=2

# 更新grub
update-grub2

# 重启
reboot

1 条评论

yep · 2023年7月5日 下午6:07

博主你好,请问一下要怎么构建自己的ArchLinux-iso镜像文件呢?

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据