用debootscrap最小化安装debian
通过官方ISO安装是通常做法,但是基于极简原则,我尝试通过debootstrap命令安装,以获得一个最小化系统。
准备磁盘
切换到root用户
sudo -i
磁盘分区格式化挂载
lsblk
ls /sys/firmware/efi #检查当前引导方式uefi
fdisk -l
mkfs.ext4 /dev/sda1
apt install dosfstools
mkfs.vfat -F 32 -n EFI /dev/xxx
mount /dev/sda2 /mnt
配置软件源
#/etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
安装
apt install debootstrap
debootstrap trixie /mnt http://mirrors.tuna.tsinghua.edu.cn/debian
#uefi模式需要: mkdir -p /mnt/boot/efi mount /dev/sda1 /mnt/boot/efi
配置系统
复制网络设置
cp /etc/network/interfaces /mnt/etc/network
获取分区UUID
blkid > /mnt/etc/fstab
生成fstab
echo 'UUID=*** / ext4 defaults 0 1' >/mnt/etc/fstab
UUID="" /boot/efi vfat defaults 0 2
mount -a #验证fstab 切换新系统
cd /mnt
for i in /dev /dev/pts /proc /sys /run; do sudo mount --rbind $i /mnt$i; done
chroot /mnt
设置密码,主机名称
passwd
hostname yourhostname
安装内核及grub等
apt install linux-image-amd64 sudo
#bios模式
apt install grub-pc
grub-install /dev/sda
#uefi模式使用
apt install grub-efi-amd64
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck /dev/sda
##若出错grub-install: warning: EFI variables cannot be set on this system,
#退到chroot前,运行:
#sudo mount -t efivarfs efivarfs /mnt/sys/firmware/efi/efivars
#若要修改默认启动系统或时间
#sudo nano /etc/default/grub
#修改项GRUB_DEFAULT=0
update-grub
可选配置
安装非免固件或AMD图形固件
#apt install firmware-amd-graphics -y
#apt install firmware-linux-nonfree
新建用户配置sudo免密
useradd -m -g users sb -s /bin/bash
passwd sb
echo 'sb ALL=(ALL)NOPASSWD:ALL'>>/etc/sudoers
配置HOSTS
#/etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.0.1 myhostname.localdomain myhostname
配置时区同步
sudo timedatectl set-timezone Asia/Shanghai
sudo timedatectl set-ntp true
sudo systemctl start systemd-timesyncd
常用软件
sudo apt install i3 lightdm
sudo apt install openbox xterm alsa-utils mousepad pcmanfm tint2 fonts-wqy-microhei trojan firefox-esr git volumeicon-alsa file-roller nomacs imagemagick -y
配置默认启动界面
systemctl set-default multi-user.target/graphical.target