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これは、関連するDMIエントリを取得するためにUbuntuインストーラで使用する関連部分です。

使ってみましたが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_modulesプロビジョニングすることもできます。dmidecode-udeb
  • あるいは、シリアル番号を解析することもできます/sys/firmware/dmi/entries/1-0/raw(ただしこれはバイナリです)。
  • あるいは、pkgsel/includeターゲットシステムにプレインストールして使用することもできます。

関連情報