最近想试试将 debian 安装在 btrfs raid1 上.
用安装盘安装, 直接安装在 btrfs raid1上, 会在安装 grub 的时候出错.
使用单盘 btrfs 安装完后, 再加另一个盘组 raid1 倒是可以.
就是以后如果重装, 又要的拆成单盘再重装, 很麻烦.
试了下 debootstrap 安装debian, 直接就能安装在 btrfs raid1 上, 记录下安装过程.
安装 debootstrap
启动 debian live cd
sudo su -
apt update
apt install debootscrap
硬盘分区 建立 btrfs raid1
#新建分区表
sgdisk /dev/sda -o
#第一个分区留给bios引导用, 使用bios+gpt方式, 设置legacy_boot flag
#如果使用uefi+gpt方式, 第一个分区留512M, 分区type code用ef00
#第二个分区swap
#第三个分区btrfs
#bios
sgdisk /dev/sda -n 0:2048:+1M -t 0:ef02 -A 1:set:2
#uefi
sgdisk /dev/sda -n 0:2048:+512M -t 0:ef00
mkfs.fat -F 32 /dev/sda1
sgdisk /dev/sda -n 0:0:+8G -t 0:8200
sgdisk /dev/sda -n 0:0:0 -t 0:8300
#swap
mkswap /dev/sda2
#复制分区表
sgdisk -R /dev/sdb /dev/sda
#让分区UUID一样
dd if=/dev/sda1 of=/dev/sdb1
dd if=/dev/sda2 of=/dev/sdb2
btrfs raid1, subvolume
#建立 raid 1, 挂载到 /mnt
mkfs.btrfs -f -m raid1 -d raid1 /dev/sda3 /dev/sdb3
mount -t btrfs /dev/sda3 /mnt
#新建subvolume, 2个 subvolume 给 / 和 /home 用
btrfs sub create /mnt/@
btrfs sub create /mnt/@home
#挂载 @ 用于安装系统
umount /mnt
mount -t btrfs -o subvol=@ /dev/sda3 /mnt
debootstrap 安装基本系统
debootscrap --arch amd64 buster /mnt https://mirrors.huaweicloud.com/debian
chroot
mount -t proc /proc /mnt/proc/
mount -t sysfs /sys /mnt/sys/
mount -t devpts /dev/pts /mnt/dev/pts
mount -o bind /dev /mnt/dev/
chroot /mnt /bin/bash
fstab
vi /etc/fstab
UUID=xxxx / btrfs defaults,subvol=@ 0 0
UUID=xxxx /home btrfs defaults,subvol=@home 0 0
UUID=xxxx /rpool btrfs defaults,subvol=/ 0 0
UUID=xxxx none swap rw 0 0
配置 apt sources
vi /etc/apt/sources.list
deb https://mirrors.huaweicloud.com/debian/ buster main contrib non-free
deb https://mirrors.huaweicloud.com/debian/ buster-updates main contrib non-free
deb https://mirrors.huaweicloud.com/debian-security/ buster/updates main contrib non-free
deb https://mirrors.huaweicloud.com/debian/ buster-backports main contrib non-free
apt update
系统配置
#修改密码
passwd
#locales tzdata
apt install locales
dpkg-reconfigure locales
dpkg-reconfigure tzdata
#中文字体
apt install fonts-wqy-microhei
#btrfs-progs
apt install btrfs-progs
#安装kernel, 驱动
apt install linux-image-amd64
apt install firmware-linux
#网卡驱动
#firmware-realtek
#network
vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
vi /etc/resolv.conf
nameserver 114.114.114.114
#安装标准工具
tasksel install standard
GRUB
#rootflags 加上 degraded, 在丢盘的时候也能正常开机
vi /etc/grub.d/10_linux
rootflags=degraded,subvol...
#bios
apt install grub2
update-grub
grub-install /dev/sda
grub-install /dev/sdb
#uefi
apt install grub-efi
update-grub
grub-install --efi-dir=/boot/efi
dd if=/dev/sda1 of=/dev/sdb1
#grub 安装失败问题:
# grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..
# grub-install: error: filesystem `btrfs' does not support blocklists.
用 wipefs -o 0x10040 /dev/sdx 命令来擦掉 BTRFS superblock