1
IPv6を使用したディスクレスブート
私たちの仕事では、Ubuntuを実行している約80台のディスクレスマシンを使用しています。IPv6への移行を望んでいるので、今ではディスクレスシステムをIPV6で動作させようとしています。カーネルとinitramfsの送信は引き続きIPv4接続を介して行うことができますが、マシンが完全に起動したら、すべてのネットワーク接続がIPv6を介して行われるようにします。 これは、nfsrootをIPv6経由でマウントする必要があることを意味します。これに関する私の調査では、initramfs-tools(1.18.5-1ubuntu4.1)はIPv6をサポートしていないことが示されました。つまり、初期ブート時のインターフェース構成に使用されるipconfigも、nfsルートのマウントマウント手順もIPv6対応ではありません。 これを回避するために、initramfs(/etc/initramfs-tools/hooks/ipv6)に2つのバイナリを追加しました。 #!/bin/bash . /usr/share/initramfs-tools/hook-functions copy_exec /sbin/dhclient /sbin copy_exec /sbin/mount.nfs4 /sbin これらを使用して、(a)初期ブート時にDHCPv6を要求します。 /sbin/dhclient -6 -1 -cf /tmp/dhclient.conf -pf /tmp/dhclient6.eth0.pid -lf /tmp/dhclient6.eth0.leases eth0 (b)以下を実行して得たアドレスでインターフェースを設定します: ipv6=$(cat /tmp/dhclient6.eth0.leases | grep iaaddr | egrep -o "([a-f0-9]{1,4}:){3}([a-f0-9]{0,4}:){0,4}[a-f0-9]{1,4}") ip -6 addr add $ipv6/112 dev eth0 通常、nfsルートは次のコマンドでマウントされ/usr/share/initramfs-tools/scripts/nfsます: nfsmount -o nolock ${roflag} ${NFSOPTS} ${NFSROOT} ${rootmnt} しかし、これはIPv6アドレスを受け入れないようです。 だから私はそれを次のように変更しました: …