Debian Wheezy で initramfs の /etc にファイルを追加します。

Debian Wheezy で initramfs の /etc にファイルを追加します。

/etc/initramfs-tools/etc/motdinitramfs環境の/ etcで使用できるようにこのファイルを追加しました。しかし、それは現れませんでした。今回が2回目の試みです。ファイルに使用可能なすべての権限を付与しました(600も使用しました)。

root@cow:~# ls -l /etc/initramfs-tools/etc/
total 8
drwx------ 2 root root 4096 Sep 19 00:57 dropbear
-rwxrwxrwx 1 root root  117 Sep 29 15:32 motd

その後、sudo update-initramfs -uinitramfs環境で起動し、Dropbearを介してSSH経由でログインしましたが、ファイルはまだ存在しませんでした。

~ # ls -l /etc
total 20
-rw-------    1 root     0             4077 Sep 29 13:44 boottime.kmap.gz
drwx------    2 root     0                0 Sep 29 13:44 dropbear
-rw-r--r--    1 root     0             1991 Sep 29 13:44 ld.so.cache
-rw-r--r--    1 root     0               34 Sep 18 17:24 ld.so.conf
drwxr-xr-x    2 root     0                0 Sep 18 17:25 ld.so.conf.d
drwx------    2 root     0                0 Sep 29 13:44 lvm
drwx------    2 root     0                0 Sep 29 13:44 mdadm
drwx------    2 root     0                0 Sep 29 13:44 modprobe.d
-rw-------    1 root     0               15 Sep 29 13:44 nsswitch.conf
-rw-------    1 root     0               30 Sep 29 13:44 passwd
drwx------    2 root     0                0 Sep 29 13:44 udev

どのように追加する必要がありますか?上記の方法がなぜ機能しないのですか?

答え1

デフォルトのファイルを間違った場所に配置しました。 initramfsフックを使いたいです。

以下を見てみると、/usr/share/initramfs-tools/hooks例が表示されますが、簡単に言えば、次のことをしたいと思います。

  #!/bin/sh

  PREREQ=""

  prereqs()
  {
          echo "$PREREQ"
  }

  case $1 in
  # get pre-requisites
  prereqs)
          prereqs
          exit 0
          ;;
  esac

  . /usr/share/initramfs-tools/hook-functions
  mkdir -p ${DESTDIR}/etc/motd || true
  cp -pnL /etc/motd ${DESTDIR}/etc/motd
  chmod 644 ${DESTDIR}/etc/motd

お役に立てば幸いです。

フックスクリプトは実行可能でなければならないことを覚えておいてください。

修正する:また、システムが起動したら、initramfs環境がルートファイルシステムに置き換えられた可能性が高いことに注意してください。ただし、cpioたとえば、initramfs イメージに含まれる内容を確認できる必要があります。

関連情報