首先启动ks的救援系统,具体的步骤可以参考这里:https://lala.im/8123.html
ks的这个救援系统实际上就相当于一个livecd,只不过版本很旧是debian8。按道理来说是可以直接在这个救援系统内用debootstrap来安装debian的,但是我测试了很多次发现直接用这个救援系统内的debootstrap来安装debian的话最后是启动不了的,具体是啥原因我也不清楚,没有kvm我看不到机器屏幕上面的信息,所以也就不知道问题出在哪。。
感觉应该是系统版本太旧,里面提供的软件包也太旧,比如debootstrap和mdadm,导致最终安装好的系统出现某些问题不能在机器上启动。
最后我安装成功的方法其实是之前文章里面写过的,在这个救援系统内安装qemu-kvm,然后用qemu-kvm启动一个debian11的livecd,接着在livecd里面用debootstrap来安装。。属于是层层套娃了。。
使用debootstrap来安装debian系统的优点是可以对系统进行深度的定制,这篇文章先记录一下整个安装过程。
注意本文提供的安装方法仅适用于传统bios引导,如果是uefi引导的话有些配置是不同的。
在救援系统内安装qemu-kvm:
apt -y update apt -y install qemu qemu-kvm
下载debian11的livecd,这里建议选择一个带桌面环境的版本,我这里选择的是xfce:
wget https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-11.3.0-amd64-xfce.iso
启动livecd:
qemu-system-x86_64 \ -enable-kvm \ -nodefaults \ -cdrom /root/debian-live-11.3.0-amd64-xfce.iso \ -hda /dev/sda \ -hdb /dev/sdb \ -cpu host \ -smp 4 \ -m 8G \ -net nic \ -net user \ -vga std \ -vnc 127.0.0.1:0 \ -usbdevice tablet \ -k en-us \ -boot d
现在你需要建立一个ssh隧道来连接到虚拟机的vnc,整个配置过程可以参考:https://lala.im/8123.html
在vnc内选择第一个菜单启动:
等待片刻,应该可以看到xfce的桌面了,打开终端:
安装debootstrap:
apt -y update apt -y install debootstrap
查看硬盘的分区信息:
lsblk
如果有raid阵列正在运行,先停止raid阵列:
mdadm --stop /dev/md0
然后清除硬盘的分区表:
wipefs -a /dev/sda wipefs -a /dev/sdb
接下来给硬盘分区:
fdisk /dev/sda fdisk /dev/sdb
两块硬盘都只需要划分一个分区即可,这里我以/dev/sda这块盘为例:
使用mdadm创建raid设备:
mdadm --create /dev/md0 --level=raid0 --raid-devices=2 /dev/sda1 /dev/sdb1
创建文件系统:
mkfs.ext4 /dev/md0
挂载文件系统到/mnt目录:
mount /dev/md0 /mnt
使用debootstrap把debian11的基础系统载入到/mnt目录:
debootstrap --arch amd64 bullseye /mnt
挂载虚拟文件系统:
mount --rbind /proc /mnt/proc mount --rbind /sys /mnt/sys mount --rbind /dev /mnt/dev
chroot到debian11的基础系统内:
chroot /mnt /bin/bash
编辑系统内的存储库配置文件:
nano /etc/apt/sources.list
把完整的存储库配置写上去:
deb http://deb.debian.org/debian bullseye main contrib non-free deb-src http://deb.debian.org/debian bullseye main contrib non-free deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb http://deb.debian.org/debian bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
编辑网络配置文件:
nano /etc/network/interfaces
修改ip/网关/子网掩码:
auto lo iface lo inet loopback allow-hotplug eth0 iface eth0 inet static address xx.xx.xx.xx gateway xx.xx.xx.xx netmask xx.xx.xx.xx
这里的ip/网关/子网掩码参考你机器原系统内的配置即可。
配置dns服务器:
nano /etc/resolv.conf
写入如下配置:
nameserver 8.8.8.8 nameserver 8.8.4.4
设置主机名:
echo imlala > /etc/hostname
更新存储库:
apt -y update
安装arch-install-scripts,这个包提供了一个archlinux下的genfstab工具,此工具可以自动帮你生成正确的fstab:
apt -y install arch-install-scripts
使用genfstab生成fstab:
genfstab -U / >> /etc/fstab
安装locales以及console-setup:
apt -y install locales console-setup
配置系统编码:
dpkg-reconfigure locales
选择en_US.UTF-8:
这里也选择en_US.UTF-8:
配置系统时间:
dpkg-reconfigure tzdata
选择asia/shanghai:
安装内核:
apt -y install linux-image-amd64
安装grub和mdadm,注意这里必须要安装mdadm,没有mdadm的话grub无法识别到raid阵列,后续grub就无法正常工作:
apt -y install grub-pc mdadm
将grub分别安装到两块硬盘:
grub-install /dev/sda grub-install /dev/sdb
编辑grub配置文件:
nano /etc/default/grub
加入net.ifnames=0以及biosdevname=0的内核启动参数,目的是让内核使用eth0这样的传统接口名:
GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 biosdevname=0"
更新grub配置:
update-grub
设置root密码:
passwd
安装ssh服务:
apt -y install openssh-server
编辑ssh配置文件:
nano /etc/ssh/sshd_config
修改下面的配置以允许root登录:
PermitRootLogin yes
退出chroot环境:
exit
关闭虚拟机并退出救援系统,在ks后台把引导改为从硬盘启动,重启服务器即可。