Debian 12 Preseed 自动 安装 无法识别硬盘解决办法

前言

在折腾debian12的pxe自动安装时,使用netboot 莫名其妙会一直出现 no root file system

图片[1]-Debian 12 Preseed 自动 安装 无法识别硬盘解决办法-西西のBlog

后来翻看dmesg后,发现根本没有识别到硬盘,这个时候想到是不是没有对应的驱动,所以无法读取。然后将可以安装的dvd-iso 里的内核驱动与netboot的内核驱动合并。然后就可以正常安装了。

公司的机器比较老,所以无法处理,这里也记录下,DELL C6220。

处理

首先挂载dvd镜像

mkdir -p /mnt/dvd
mount -o loop debian-12.11.0-amd64-DVD-1.iso /mnt/dvd

创建一个临时的目录用于存放 dvd 和 netboot 的initrd.gz

mkdir -p /tmp/initrd-dvd
mkdir -p /tmp/initrd-netboot

切到dvd里,将dvd里的解压出来

cd /tmp/initrd-dvd
zcat /mnt/dvd/install.amd/initrd.gz | cpio -id

这个时候正常应该会输出xxx(这里会是数字)块,如果没有显示也是正常的,可以切换另一个窗口来ls 查看下大小有没有变动。

解压netboot 原版的 initrd

cd /tmp/initrd-netboot
zcat /[这里的路径填写,给用于启动的netboot的路径]/debian-installer/amd64/initrd.gz | cpio -id

复制dvd的kernel drivers 文件到 netboot里

rsync -a /tmp/initrd-dvd/lib/modules/6.1.0-18-amd64/kernel/drivers/* \
      /tmp/initrd-netboot/lib/modules/6.1.0-18-amd64/kernel/drives/

复制完成后,重新打包

cd /tmp/initrd-netboot
find . | cpio -o -R 0:0 -H newc | gzip -9 > /[这里的路径填写,给用于启动的netboot的路径]/debian-installer/amd64/initrd.gz

然后再次进行尝试即可。

一些有的没的

在preseed里,如果想要跳过键盘,gpt给出的答案以外,似乎还要再增加另一条内容。才可以。附上可以完美跳过键盘设置的preseed部分:

### Locale & keyboard
d-i debian-installer/locale string en_US.UTF-8
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i keyboard-configuration/xkb-keymap select us # 这个比较重要。其他的可以自行尝试。
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/modelcode string pc105
d-i keyboard-configuration/variantcode string
d-i keyboard-configuration/optionscode string
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/ask_detect boolean false

还有apt本地源也是,如果是用iso镜像直接解压处理的,那一般需要跳过gpg:

d-i mirror/http/directory string /Linux/debian12
d-i mirror/suite string bookworm
d-i mirror/udeb/suite string bookworm
d-i mirror/disable-verification boolean true
d-i debian-installer/allow_unauthenticated boolean true
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容