Debian无人值守安装
发表于|更新于
|字数总计:881|阅读时长:5分钟|阅读量:
我的需求:
- 自动配置地区、语言、键盘、镜像源(清华源)
- 自动设置用户为root,密码为123456,不设置其他超级用户。
- 自动使用整块硬盘安装debian(因为我用于esxi虚拟机)
| 12
 
 | root@debian:~# pwd/root
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | # 下载Debian12.8.0root@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]
 
 | 
| 12
 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
 
 | 
| 12
 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
 
 | 
| 12
 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
 
 | 
| 12
 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/
 
 | 
| 12
 
 | 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