Debian无人值守安装
发表于|更新于
|字数总计:881|阅读时长:5分钟|阅读量:
我的需求:
- 自动配置地区、语言、键盘、镜像源(清华源)
- 自动设置用户为root,密码为123456,不设置其他超级用户。
- 自动使用整块硬盘安装debian(因为我用于esxi虚拟机)
1 2
| root@debian:~# pwd /root
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 下载Debian12.8.0 root@debian:~# wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.8.0-amd64-netinst.iso --2025-01-11 13:54:25-- https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.8.0-amd64-netinst.iso Resolving cdimage.debian.org (cdimage.debian.org)... 194.71.11.173, 194.71.11.163, 2001:6b0:19::163, ... Connecting to cdimage.debian.org (cdimage.debian.org)|194.71.11.173|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://chuangtzu.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-12.8.0-amd64-netinst.iso [following] --2025-01-11 13:54:27-- https://chuangtzu.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-12.8.0-amd64-netinst.iso Resolving chuangtzu.ftp.acc.umu.se (chuangtzu.ftp.acc.umu.se)... 194.71.11.167, 2001:6b0:19::167 Connecting to chuangtzu.ftp.acc.umu.se (chuangtzu.ftp.acc.umu.se)|194.71.11.167|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 661651456 (631M) [application/x-iso9660-image] Saving to: ‘debian-12.8.0-amd64-netinst.iso’
debian-12.8.0-amd64-netinst.iso 100%[============================================================================================================>] 631.00M 3.97MB/s in 41s
2025-01-11 13:55:10 (15.4 MB/s) - ‘debian-12.8.0-amd64-netinst.iso’ saved [661651456/661651456]
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # mount镜像 root@debian:~# mkdir mnt root@debian:~# mount ./debian-12.8.0-amd64-netinst.iso ./mnt mount: /root/mnt: WARNING: source write-protected, mounted read-only. root@debian:~# ls ./mnt boot css debian dists doc EFI firmware install install.amd isolinux md5sum.txt pics pool README.html README.mirrors.html README.mirrors.txt README.source README.txt # 复制镜像文件 root@debian:~# cp -rT ./mnt ./isofile root@debian:~# ls ./isofile/ boot css debian dists doc EFI firmware install install.amd isolinux md5sum.txt pics pool README.html README.mirrors.html README.mirrors.txt README.source README.txt # umount镜像 root@debian:~# umount ./mnt
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| # 修改启动超时时间 root@debian:~# nano ./isofile/isolinux/isolinux.cfg root@debian:~# cat ./isofile/isolinux/isolinux.cfg # D-I config version 2.0 # search path for the c32 support libraries (libcom32, libutil etc.) path prompt 0 timeout 30 # 实测这个地方修改并没有卵用 include menu.cfg default vesamenu.c32 # 设置默认为CLI安装 root@debian:~# nano ./isofile/isolinux/txt.cfg root@debian:~# cat ./isofile/isolinux/txt.cfg default install label install menu label ^Install menu default kernel /install.amd/vmlinuz append vga=788 initrd=/install.amd/initrd.gz --- quiet preseed/file=/cdrom/preseed.cfg auto=true priority=critical # 禁用默认GUI安装 root@debian:~# nano ./isofile/isolinux/gtk.cfg root@debian:~# cat ./isofile/isolinux/gtk.cfg label installgui menu label ^Graphical install kernel /install.amd/vmlinuz append vga=788 initrd=/install.amd/gtk/initrd.gz --- quiet
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| # 写preseed.cfg文件 root@debian:~# nano ./isofile/preseed.cfg root@debian:~# cat ./isofile/preseed.cfg d-i debian-installer/locale string en_US d-i keyboard-configuration/xkb-keymap select us d-i netcfg/choose_interface select auto d-i netcfg/hostname string debian
d-i mirror/country string manual d-i mirror/http/hostname string mirrors.tuna.tsinghua.edu.cn d-i mirror/http/directory string /debian d-i mirror/http/proxy string
d-i partman-auto/method string regular d-i partman-auto/disk string /dev/sda d-i partman-auto-regular/guided_size string max d-i partman-lvm/device_remove_lvm boolean true d-i partman-md/device_remove_md boolean true d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true d-i partman-auto/choose_recipe select atomic d-i partman-auto/purge boolean true d-i partman/confirm_write_new_label boolean true d-i partman-md/confirm boolean true d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true
d-i apt-setup/cdrom/set-first boolean false
d-i passwd/make-user boolean false d-i passwd/root-password password 123456 d-i passwd/root-password-again password 123456
d-i time/zone string Asia/Shanghai
d-i pkgsel/run_tasksel boolean false d-i pkgsel/include string openssh-server d-i pkgsel/upgrade select none
d-i grub-installer/only_debian boolean true d-i grub-installer/bootdev string default
d-i finish-install/reboot_in_progress note
|
1 2 3 4 5 6 7 8 9 10 11
| root@debian:~# chmod +w -R ./isofile/install.amd/ root@debian:~# gunzip ./isofile/install.amd/initrd.gz root@debian:~# find ./isofile -type f -name "preseed.cfg" | cpio -H newc -o -A -F ./isofile/install.amd/initrd 3 blocks root@debian:~# lsinitramfs ./isofile/install.amd/initrd | grep preseed.cfg usr/share/brltty-udeb/mate-preseed.cfg usr/share/rootskel/mate-preseed.cfg isofile/preseed.cfg cpio: premature end of archive root@debian:~# gzip ./isofile/install.amd/initrd root@debian:~# chmod -w -R ./isofile/install.amd/
|
1 2
| root@debian:~# cd isofile/ root@debian:~/isofile# genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../debian.iso ./
|
参考文献:
https://www.debian.org/releases/stable/example-preseed.txt