docs(post): align AOSC offline install guide with wiki post-install steps
Add chroot-time user (wheel), timezone, locale, and hostnamectl set-hostname. Fix PermitRootLogin typo and remove incorrect hostnamectl hostname. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6,14 +6,13 @@ date = "2026-03-04"
|
|||||||
description = "参考 Fedora 的分区设置"
|
description = "参考 Fedora 的分区设置"
|
||||||
categories = ["HomeLab"]
|
categories = ["HomeLab"]
|
||||||
tags = ["AOSC"]
|
tags = ["AOSC"]
|
||||||
image = "https://assets.mitsea.cn/blog/posts/2026/03/%E5%9C%A8%20btrfs%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85%20AOSC%20OS/frode-myklebust-UbDdynMmcX0-unsplash.jpg"
|
image = "[https://assets.mitsea.cn/blog/posts/2026/03/%E5%9C%A8%20btrfs%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85%20AOSC%20OS/frode-myklebust-UbDdynMmcX0-unsplash.jpg](https://assets.mitsea.cn/blog/posts/2026/03/%E5%9C%A8%20btrfs%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85%20AOSC%20OS/frode-myklebust-UbDdynMmcX0-unsplash.jpg)"+++
|
||||||
+++
|
|
||||||
|
|
||||||
## 准备操作
|
## 准备操作
|
||||||
|
|
||||||
进入命令行模式安装系统
|
进入命令行模式安装系统
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
由于下面的操作比较多,为了方便复制,可以考虑使用 ssh 远程连接
|
由于下面的操作比较多,为了方便复制,可以考虑使用 ssh 远程连接
|
||||||
|
|
||||||
@@ -29,7 +28,7 @@ passwd
|
|||||||
nano /etc/ssh/sshd_config
|
nano /etc/ssh/sshd_config
|
||||||
```
|
```
|
||||||
|
|
||||||
将`PremitRootLogin` 前的注释删掉并改成 `yes`
|
将 `PermitRootLogin` 前的注释删掉并改成 `yes`
|
||||||
|
|
||||||
重启 ssh 服务
|
重启 ssh 服务
|
||||||
|
|
||||||
@@ -44,112 +43,65 @@ systemctl restart ssh
|
|||||||
### 清除硬盘内容
|
### 清除硬盘内容
|
||||||
|
|
||||||
1. 擦掉所有文件系统签名
|
1. 擦掉所有文件系统签名
|
||||||
|
```bash
|
||||||
```bash
|
|
||||||
wipefs -a /dev/sda*
|
wipefs -a /dev/sda*
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 删除 GPT/MBR 分区表
|
2. 删除 GPT/MBR 分区表
|
||||||
|
```bash
|
||||||
```bash
|
|
||||||
sgdisk --zap-all /dev/sda
|
sgdisk --zap-all /dev/sda
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### 分区与格式化
|
### 分区与格式化
|
||||||
|
|
||||||
1. 用 `fdisk` 重建 GPT
|
1. 用 `fdisk` 重建 GPT
|
||||||
|
```bash
|
||||||
```bash
|
|
||||||
fdisk /dev/sda
|
fdisk /dev/sda
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 在 fdisk 里依次输入,每行一个命令(期间如果提示分区包含一个 xx 签名,选择 y 移除签名):
|
2. 在 fdisk 里依次输入,每行一个命令(期间如果提示分区包含一个 xx 签名,选择 y 移除签名):
|
||||||
|
`g` (新建 GPT)
|
||||||
`g` (新建 GPT)
|
|
||||||
|
|
||||||
`n` (新建分区 1:EFI)
|
`n` (新建分区 1:EFI)
|
||||||
|
|
||||||
回车(默认分区号 1)
|
回车(默认分区号 1)
|
||||||
|
|
||||||
回车(默认起始)
|
回车(默认起始)
|
||||||
|
|
||||||
输入:`+600M`
|
输入:`+600M`
|
||||||
|
|
||||||
`t` (改类型)
|
`t` (改类型)
|
||||||
|
|
||||||
输入:`1` 选择 EFI System(通常会让你选类型,直接选 EFI/1)
|
输入:`1` 选择 EFI System(通常会让你选类型,直接选 EFI/1)
|
||||||
|
|
||||||
`n` (新建分区 2:boot 分区)
|
`n` (新建分区 2:boot 分区)
|
||||||
|
|
||||||
回车(默认分区号 2)
|
回车(默认分区号 2)
|
||||||
|
|
||||||
回车(默认起始)
|
回车(默认起始)
|
||||||
|
|
||||||
输入:`+1.4G` (如果需要多内核可以调大)
|
输入:`+1.4G` (如果需要多内核可以调大)
|
||||||
|
|
||||||
`n` (新建分区 3:btrfs 系统分区)
|
`n` (新建分区 3:btrfs 系统分区)
|
||||||
|
- 回车(默认分区号 3)
|
||||||
- 回车(默认分区号 3)
|
- 回车(默认起始)
|
||||||
- 回车(默认起始)
|
- 回车(用剩余全部空间)
|
||||||
- 回车(用剩余全部空间)
|
|
||||||
|
|
||||||
`w` (写入并退出)
|
`w` (写入并退出)
|
||||||
|
|
||||||
3. 写完后检查
|
3. 写完后检查
|
||||||
|
```bash
|
||||||
```bash
|
|
||||||
lsblk /dev/sda
|
lsblk /dev/sda
|
||||||
```
|
```
|
||||||
|
|
||||||
你应该看到 `sda1` 和 `sda2` 出现。
|
你应该看到 `sda1` 和 `sda2` 出现。
|
||||||
|
|
||||||
4. 格式化
|
4. 格式化
|
||||||
|
EFI 分区(FAT32)
|
||||||
EFI 分区(FAT32)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mkfs.fat -F32 /dev/sda1
|
|
||||||
```
|
|
||||||
|
|
||||||
boot 分区(ext4)
|
boot 分区(ext4)
|
||||||
|
|
||||||
```bash
|
|
||||||
mkfs.ext4 -L BOOT /dev/sda2
|
|
||||||
```
|
|
||||||
|
|
||||||
btrfs 分区
|
btrfs 分区
|
||||||
|
|
||||||
```bash
|
|
||||||
mkfs.btrfs -f -L LINUX_SYSTEM /dev/sda3
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### 创建 btrfs 子卷并挂载(@ 和 @home)
|
### 创建 btrfs 子卷并挂载(@ 和 @home)
|
||||||
|
|
||||||
1. 先临时挂载顶层
|
1. 先临时挂载顶层
|
||||||
|
```bash
|
||||||
```bash
|
|
||||||
mkdir -p /mnt/btrfs-top
|
mkdir -p /mnt/btrfs-top
|
||||||
mount /dev/sda3 /mnt/btrfs-top
|
mount /dev/sda3 /mnt/btrfs-top
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 创建子卷
|
2. 创建子卷
|
||||||
|
```bash
|
||||||
```bash
|
|
||||||
btrfs subvolume create /mnt/btrfs-top/@
|
btrfs subvolume create /mnt/btrfs-top/@
|
||||||
btrfs subvolume create /mnt/btrfs-top/@home
|
btrfs subvolume create /mnt/btrfs-top/@home
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 卸载顶层
|
3. 卸载顶层
|
||||||
|
```bash
|
||||||
```bash
|
|
||||||
umount /mnt/btrfs-top
|
umount /mnt/btrfs-top
|
||||||
```
|
```
|
||||||
|
|
||||||
4. 挂载安装用的根目录和系统分区
|
4. 挂载安装用的根目录和系统分区
|
||||||
|
```bash
|
||||||
```bash
|
|
||||||
# 挂载带透明压缩的 btrfs 根目录到 /mnt
|
# 挂载带透明压缩的 btrfs 根目录到 /mnt
|
||||||
mount -o subvol=@,compress=zstd:3 /dev/sda3 /mnt
|
mount -o subvol=@,compress=zstd:3 /dev/sda3 /mnt
|
||||||
|
|
||||||
@@ -164,132 +116,143 @@ systemctl restart ssh
|
|||||||
# 挂载带透明压缩的 btrfs home 目录
|
# 挂载带透明压缩的 btrfs home 目录
|
||||||
mkdir -p /mnt/home
|
mkdir -p /mnt/home
|
||||||
mount -o subvol=@home,compress=zstd:3 /dev/sda3 /mnt/home
|
mount -o subvol=@home,compress=zstd:3 /dev/sda3 /mnt/home
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## 安装系统
|
## 安装系统
|
||||||
|
|
||||||
### 复制系统文件
|
### 复制系统文件
|
||||||
|
|
||||||
1. 确认一下你要用的源目录是存在的:
|
1. 确认一下你要用的源目录是存在的:
|
||||||
|
```
|
||||||
```
|
|
||||||
ls /run/livekit/sysroots/desktop | head
|
ls /run/livekit/sysroots/desktop | head
|
||||||
```
|
```
|
||||||
|
|
||||||
如果能列出 `/etc` `/lib` 之类,确认你的 livekit 确实是有离线包,我们就开始使用 rsync 复制
|
如果能列出 `/etc` `/lib` 之类,确认你的 livekit 确实是有离线包,我们就开始使用 rsync 复制
|
||||||
|
|
||||||
2. 执行 rsync 命令复制
|
2. 执行 rsync 命令复制
|
||||||
|
```jsx
|
||||||
```jsx
|
|
||||||
rsync -aAXHv \
|
rsync -aAXHv \
|
||||||
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
|
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
|
||||||
/run/livekit/sysroots/desktop/ \
|
/run/livekit/sysroots/desktop/ \
|
||||||
/mnt/
|
/mnt/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### 生成 fstab
|
### 生成 fstab
|
||||||
|
|
||||||
1. 先获取 UUID
|
1. 先获取 UUID
|
||||||
|
```
|
||||||
```
|
|
||||||
blkid
|
blkid
|
||||||
```
|
```
|
||||||
|
|
||||||
记住:
|
记住:
|
||||||
|
- sda3 的 UUID(btrfs 系统分区)
|
||||||
- sda3 的 UUID(btrfs 系统分区)
|
- sda2 的 UUID(ext4 boot 分区)
|
||||||
- sda2 的 UUID(ext4 boot 分区)
|
- sda1 的 UUID(FAT32 EFI 分区)
|
||||||
- sda1 的 UUID(FAT32 EFI 分区)
|
|
||||||
2. 编辑 fstab:
|
2. 编辑 fstab:
|
||||||
|
```
|
||||||
```
|
|
||||||
nano /mnt/etc/fstab
|
nano /mnt/etc/fstab
|
||||||
```
|
```
|
||||||
|
|
||||||
写入(用你实际 UUID 替换):
|
写入(用你实际 UUID 替换):
|
||||||
|
|
||||||
```
|
|
||||||
UUID=<sda3的UUID> / btrfs subvol=@,compress=zstd:3 0 0
|
|
||||||
UUID=<sda2的UUID> /boot ext4 defaults 0 2
|
|
||||||
UUID=<sda3的UUID> /home btrfs subvol=@home,compress=zstd:3 0 0
|
|
||||||
UUID=<sda1的UUID> /boot/efi vfat defaults 0 1
|
|
||||||
```
|
|
||||||
|
|
||||||
保存退出
|
保存退出
|
||||||
|
|
||||||
|
|
||||||
### 准备 chroot
|
### 准备 chroot
|
||||||
|
|
||||||
1. 挂载系统目录
|
1. 挂载系统目录
|
||||||
|
```
|
||||||
```
|
|
||||||
mount --bind /dev /mnt/dev
|
mount --bind /dev /mnt/dev
|
||||||
mount --bind /proc /mnt/proc
|
mount --bind /proc /mnt/proc
|
||||||
mount --bind /sys /mnt/sys
|
mount --bind /sys /mnt/sys
|
||||||
mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
|
mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
|
||||||
mount --bind /run /mnt/run
|
mount --bind /run /mnt/run
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 然后进入系统:
|
2. 然后进入系统:
|
||||||
|
```
|
||||||
```
|
|
||||||
chroot /mnt /bin/bash
|
chroot /mnt /bin/bash
|
||||||
```
|
```
|
||||||
|
|
||||||
如果成功,你的提示符会变化,会被重新定位到 `/`。期间如果提示 “tty: ttyname error: No such device” 错误是正常的。
|
如果成功,你的提示符会变化,会被重新定位到 `/`。期间如果提示 “tty: ttyname error: No such device” 错误是正常的。
|
||||||
|
|
||||||
|
|
||||||
### 杂项
|
### 杂项
|
||||||
|
|
||||||
1. 生成 machine-id
|
1. 生成 machine-id
|
||||||
|
```
|
||||||
```
|
|
||||||
systemd-machine-id-setup
|
systemd-machine-id-setup
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 重建 initramfs
|
2. 重建 initramfs
|
||||||
|
```
|
||||||
```
|
|
||||||
dracut -f
|
dracut -f
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## 安装 GRUB(UEFI)
|
## 安装 GRUB(UEFI)
|
||||||
|
|
||||||
1. 确认 EFI 挂载:
|
1. 确认 EFI 挂载:
|
||||||
|
```
|
||||||
```
|
|
||||||
ls /boot/efi
|
ls /boot/efi
|
||||||
```
|
```
|
||||||
|
|
||||||
没返回是正常的,有这个文件夹就行
|
没返回是正常的,有这个文件夹就行
|
||||||
|
|
||||||
2. 安装
|
2. 安装
|
||||||
|
```
|
||||||
```
|
|
||||||
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=AOSC
|
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=AOSC
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 然后生成配置:
|
3. 然后生成配置:
|
||||||
|
```
|
||||||
```
|
|
||||||
grub-mkconfig -o /boot/grub/grub.cfg
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## 后处理
|
## 后处理
|
||||||
|
|
||||||
|
以下命令仍在 **chroot 环境**内执行(与 [AOSC OS 手动安装指南](https://wiki.aosc.io/zh/AOSC_OS/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97/AOSC_OS_%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97/Installation/AMD64) 中「用户自定义设置」等章节一致)。
|
||||||
|
|
||||||
### 设置 root 密码
|
### 设置 root 密码
|
||||||
|
|
||||||
```
|
```bash
|
||||||
passwd
|
passwd
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 创建普通用户与 sudo(wheel)
|
||||||
|
|
||||||
|
AOSC OS 默认没有可用的登录用户;请把示例里的 `aosc` 换成你想要的用户名(仅小写字母与数字)。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
useradd -m -s /bin/bash aosc
|
||||||
|
usermod -a -G audio,cdrom,video,wheel aosc
|
||||||
|
chfn -f "Your Full Name" aosc
|
||||||
|
passwd aosc
|
||||||
|
```
|
||||||
|
|
||||||
|
`wheel` 组用于通过 `sudo` 获取管理员权限。
|
||||||
|
|
||||||
|
### 设置系统时区
|
||||||
|
|
||||||
|
时区文件在 `/usr/share/zoneinfo/<地区>/<城市>`。例如上海:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ln -svf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||||
|
```
|
||||||
|
|
||||||
|
### 设置语言 / Locale
|
||||||
|
|
||||||
|
默认已启用多种 UTF-8 locale。若只想指定默认语言,例如简体中文 UTF-8:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
也可使用 `localectl set-locale "LANG=zh_CN.UTF-8"`。
|
||||||
|
|
||||||
|
若要启用或禁用个别 locale,需先编辑 `/etc/locale.gen`,再执行(耗时较长):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
locale-gen
|
||||||
|
```
|
||||||
|
|
||||||
|
### 设置主机名
|
||||||
|
|
||||||
|
从 livekit 复制来的系统主机名可能仍是 livekit,在重启前可改为新主机名:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
hostnamectl set-hostname your-new-hostname
|
||||||
|
```
|
||||||
|
|
||||||
### 退出并重启
|
### 退出并重启
|
||||||
|
|
||||||
```
|
```bash
|
||||||
exit
|
exit
|
||||||
umount -R /mnt
|
umount -R /mnt
|
||||||
reboot
|
reboot
|
||||||
@@ -297,13 +260,7 @@ reboot
|
|||||||
|
|
||||||
安装完成
|
安装完成
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
由于是从 livekit 复制出来的系统,所以默认 hostname 还是 livekit,可以改一下:
|
|
||||||
|
|
||||||
```
|
|
||||||
hostnamectl hostname your-new-hostname
|
|
||||||
```
|
|
||||||
|
|
||||||
> Photo by [Frode Myklebust](https://unsplash.com/@famyklebust?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/photos/hills-and-ocean-under-a-pastel-sky-UbDdynMmcX0?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
|
> Photo by [Frode Myklebust](https://unsplash.com/@famyklebust?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/photos/hills-and-ocean-under-a-pastel-sky-UbDdynMmcX0?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
|
||||||
|
|
||||||
Reference in New Issue
Block a user