[通用教程] 制作精简的安装在U盘的Debian
debian吧
全部回复
仅看楼主
level 1
零-壹 楼主
前言:
1,仅限64位UEFI,legacy就靠大家添加了,只不过是换个引导方式而已。
2,部分参考Archlinux 的安装:http://bbs.archlinuxcn.org/viewtopic.php?id=1037
3,获取rootfs的方式也可以改为全部自己源码编译(LFS)
4,LFS太遭罪了,去年编译了一次,前前后后3天才完成,参考:https://linux.cn/lfs/LFS-BOOK-7.7-systemd/index.html
4,环境:系统 Ubuntu 16.04,联想YOGA2 11奔腾渣本,U盘32G 2个分区。
5,教程可以通用,要其他发行版可以换 debian类的debootstrap 为其他如:Arch的pacstrap,REHL类的febootstrap 。
5,此教程一方面记录防忘记,一方面跟大家共享,水平有限,望多指教。
2016年12月10日 11点12分 1
level 1
零-壹 楼主
现在来制作根文件系统-----------------
sudo apt-get install debootstrap
挂载U盘的Ext4分区到 /media/xxx/
sudo mount /dev/sdb2 /media/xxx/
sudo debootstrap --arch=amd64 jessie /media/xxx/ http://mirrors.aliyun.com/debian
如果你是在64位系统中创建32位系统,你需要在上面命令中加入 --foreign 选项
jessie,wheezy,squeeze分别是debian 8,7,6
上面命令执行完成会显示如下
I: Base system installed successfully.
好了,现在根文件系统就完成了
------------------------------------------
2016年12月10日 11点12分 3
level 1
零-壹 楼主
chroot到其中并配置-----------------
首先绑定系统资源
sudo mount -o bind /dev /media/xxx/dev
sudo mount -o bind /proc /media/xxx/proc
sudo mount -o bind /sys /media/xxx/sys
然后切换根目录
sudo chroot /media/xxx/ /bin/bash -l
---------------------------------------------
# 设置root密码,否则登录不了
passwd root
# 如果域名解析不了,请配置DNS,这里使用阿里DNS:223.5.5.5 和 223.6.6.6
echo "nameserver 223.5.5.5" > /etc/resolv.conf
# 嫌上面麻烦,有线连接可以使用软件DHCP,无线自己去想办法吧
apt-get install dhcpcd5
# 配置自动挂载,否则系统只读(read only file system):
编辑清空 /etc/fstab 并添加以下到其中,具体请根据你自己sdx配置。
#文件系统挂载点文件类型挂载选项dumpfsck
/dev/sdb1/boot/efivfatdefaults01
/dev/sdb2/ext4noatime,discard,errors=remount-ro01
----------------------------
2016年12月10日 11点12分 4
level 1
零-壹 楼主
chroot环境下安装内核(来自Ubuntu官方):
下载地址:http:/[吐舌]/kernel.ubuntu.[啊]com/~kernel-ppa/mainline/v4.8.13/
wget http:/[汗]/kernel.ubuntu.[汗]com/~kernel-ppa/mainline/v4.8.13/linux-headers-4.8.13-040813_4.8.13-040813.201612081531_all.deb
wget http:/[狂汗]/kernel.ubuntu.[狂汗]com/~kernel-ppa/mainline/v4.8.13/linux-headers-4.8.13-040813-generic_4.8.13-040813.201612081531_amd64.deb
wget http:/[升起]/kernel.ubuntu.[心碎]com/~kernel-ppa/mainline/v4.8.13/linux-image-4.8.13-040813-generic_4.8.13-040813.201612081531_amd64.deb
dpkg -i linux-headers-4.8.12-040812-generic_4.8.12-040812.201612020431_amd64.deb
dpkg -i linux-headers-4.8.12-040812_4.8.12-040812.201612020431_all.deb
dpkg -i linux-image-4.8.12-040812-generic_4.8.12-040812.201612020431_amd64.deb
内核安装结束----------------------------------------------
2016年12月10日 11点12分 5
level 1
零-壹 楼主
配置EFI启动系统-----------------
第一步,安装----------------------------------------------------
首先请各位分一个fat32的分区挂载在 /media/xxx/boot/efi 下
apt install grub-efi-amd64 #(依赖:grub-common grub2-common grub-efi-amd64-bin 等)
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Debian_mini --recheck
grub-mkconfig -o /boot/grub/grub.cfg
#建议改Debian_mini为你需要的名字,具体看:/boot/efi/EFI/Debian_mini/grubx64.efi
# 对于新手还要用第二步,老手请改 grub.cfg 实现启动即可
# 因为在我这里,grub.cfg配置文件中的分区出现错位,所以有了下一步
-----------------
第二步,命令进入----------------------------------------------------
Grub命令行启动-----------------
1,开机BIOS会查找执行 Fat32分区X:efi\boot\bootx64.efi 文件,
2,bootx64.efi 文件由第一步安装的 EFI/Debian_mini/grubx64.efi 改名替换而来 。
3,开机后会进入一个有 grub> 提示符的shell环境,输入下面命令
set root=(hd0,gpt2)
linuxefi /boot/vmlinuz-xxx root=/dev/sdb2
initrdefi /boot/initrd.img-xxx
boot
# 请将上面的vmlinuz-xxx initrd.img-xxx 及(hd0,gpt2) 和 sdb2 改为你自己的,其中在grub>输入命令ls 可看到 (hd0,gpt2)等等
-----------------
我的grub.cfg (在Fat32分区 X:efi\boot\grub.cfg 下,你的请自测)
--------------------------------------
set timeout=5
set gfxmode=1024x768
terminal_output gfxterm
# Start Debian
menuentry 'Debian Mini' --class debian --group debian {
echo 'Set root ...'
set root=(hd0,gpt2)
echo 'Loading kernel ...'
linuxefi /vmlinuz root=/dev/sdb2
echo 'Loading initial ramdisk ...'
initrdefi /initrd.img
}
--------------------------------------
2016年12月10日 12点12分 6
level 1
零-壹 楼主
好了,基本上就完成了,因度娘删帖,所以有的正在申请 状态解除 中,所以。。。
2016年12月10日20:06:50完
2016年12月10日 12点12分 7
其他的优化大家自己去做吧,这里只做基本的。
2016年12月10日 12点12分
排版太乱了,草稿在:http:/[黑线]/pan.baidu.[心碎]com/s/1nuIh2Bn 这里下载吧
2016年12月10日 12点12分
level 1
零-壹 楼主
根文件系统下载配置完成图:
Ubuntu 16.04 系统的挂载 df -h 图 (软路由机,挂载双硬盘+U盘,不是YOGA)
Ubuntu 16.04 系统 内核状态
2016年12月10日 12点12分 8
level 1
牛叉啊
2022年05月05日 18点05分 9
level 11
试试
2022年06月10日 17点06分 10
1