运行 Debian 预置安装时如何获取设备序列号?

运行 Debian 预置安装时如何获取设备序列号?

我知道您可以从运行的机器中提取序列号 dmidecode -t system,但是在运行 Debian 的预种子安装时我该如何做到这一点?dmidecode命令尚不可用,是否可以在发行版安装时安装/运行它?

答案1

举例来说,以下是我将产品序列号分配给主机名的方法:

# preseed.cfg
d-i preseed/early_command string \
  debconf-set netcfg/get_hostname "$(cat /sys/class/dmi/id/product_serial)"
d-i netcfg/get_hostname seen true

preseed.cfg这是我与 Ubuntu 安装程序一起使用的相关部分,以获取相关的 DMI 内容。

我确实尝试过使用dmidecode但是...

  • anna/choose_modules string dmidecode-udeb(显然)未能及早安装“microdeb”
  • preseed/early_command string anna-install dmidecode-udeb 安装失败

pkgsel/include string dmidecode 做过在目标上安装软件包,但仅网络配置。我尝试使用preseed/late_command string in-target下面sed -i "s/dummyhostname/$(dmidecode -s system-serial-number)/g"的文件/etc/,但我不断在更多地方找到主机名。

答案2

取决于您的环境和具体需求:

  • 如果您通过 Syslinux 启动安装程序,则可以将SYSAPPEND 0x80其放在内核命令行上。
  • 或者您可以预置anna/choose_modulesdmidecode-udeb使其在安装程序环境中可用。
  • 或者您可以解析序列号/sys/firmware/dmi/entries/1-0/raw(但这是二进制的)。
  • 或者您可以预先pkgsel/include将其安装到目标系统中并从那里使用它。

相关内容