写在开头
一般的从DVD安装系统总是有大量的我们不需要的软件,那么我们可以使用debootstrap来获取一个根文件系统,然后再在这个最小化rootfs上添砖加瓦。
我这里是制作一个最小化的无桌面环境的Debian系统,需要桌面的可以在后期安装。
系统环境:Debian9 LiveCD
虚拟环境:VMBOX 虚拟机
我是先在虚拟机创建个新磁盘,然后再上面安装测试,最后等合适的时候再把rootfs拷到新主机上用的。
我的主机是以UEFI方式启动的,它执行硬盘上第一个为Fat32的分区上的EFI\boot\bootx64.efi来引导系统启动,所以后面配置引导程序非常简单。
准备工作
- 由于我的硬盘还未分区和格式化,所以先在LiveCD中使用命令
sudo fdisk /dev/sdb
来分区,我的分区情况如下:
Device Start End Sectors Size Type
/dev/sdb1 2048 207000 204953 100.1M Fat32
/dev/sdb2 208896 20971486 20762591 9.9G Ext4
- 接下来执行下面命令分区并挂载。
1 | sudo mkfs.vfat /dev/sdb1 |
- 安装debootstrap:
sudo apt install debootstrap
开始获取
关于 debootstrap 的用法请网上搜索,这里就省略了。
执行下面第一句命令来获取Debian的根文件系统,出现
I: Base system installed successfully.
字样表示成功获取。执行下面第二句命令来挂载相关文件夹
执行下面第三句命令来切换根目录到已获取的根文件系统下。
1 | sudo debootstrap --arch=amd64 stretch /media/root/ http://mirrors.aliyun.com/debian |
修改相关
好了,现在可以说就在新根文件系统中了,为新系统做初始设置吧!
- 修改root密码
- 添加用户及组
- 配置域名解析
- 配置软件源
- 改为东八区时
- 修改主机名
1 | passwd root |
安装软件
- 安装内核,没有内核就无法启动
1 | apt install linux-image-amd64 |
- 安装你需要的软件(根据你的需要安装)
1 | apt install sudo vim openssh-server htop |
其他配置
- 首先执行
lsblk -f
获取磁盘的UUID
1 | NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT |
- 修改 /etc/fstab 的开机挂载,我的/etc/fstab 的内容为:
1 | UUID=9A46-9516 /boot/efi vfat defaults 0 1 |
- 有的UEFI默认 startup.nsh 为EFI初始启动脚本,所以添加一个:
1 | echo "fs0:\efi\boot\bootx64.efi" > /media/efi/startup.nsh |
- grub配置,由于我的grub是自己提取的单文件,只要放EFI/boot/bootx64.efi就行了,所以不用安装grub了。
这步请根据你实际的硬件来配置,我的 /boot/efi/efi/boot/grub.cfg 内容为:
1 | set timeout=1 |
准备启动
前面种种操作完成后就可以退出chroot环境了。
执行
exit
退出chroot环境。执行下面命令卸载挂载的目录。
1 | sudo umount /media/root/dev && umount /media/root/proc && umount /media/root/sys |
- 把磁盘装到新虚拟机上开机。
系统调教
现在已经可以进入新系统了,但还是有一些问题需要优化。
- 网络问题
1 | 常用网驱:firmware-realtek firmware-atheros firmware-iwlwifi firmware-brcm80211 |
- 开机启动rc.local
Debian 9 默认不带 /etc/rc.local 文件,而 rc.local 服务却还是自带的,为了解决这个问题,我们需要手工添加一个 /etc/rc.local 文件
1 | echo "#!/bin/sh -e" > /etc/rc.local |
后记
因为每个人的硬件不同,所以您需要修改相关路径已适用您的主机。
本文仅供参考,具体请自行摸索,本人不对您出现的问题负任何责任。
因为只是用来备忘,所以过程有点马虎,建议您有一定基础再参考。