On Wed, Aug 10, 2016, at 01:56 AM, Ian Kelling wrote: > On Tue, Aug 9, 2016, at 07:38 PM, andrew bezella wrote: > > On Tue, 2016-08-09 at 14:12 -0700, Ian Kelling wrote: > > > > > > Yes, I'm following this path. At the top of 30-interface, I have a > > > condition > > > for if the os is in a class that uses a persistent name, and inside > > > I have this code: > > > > [...] > > > > oh! i like that solution, thanks for sharing... > > > > -- > > andrew bezella <abeze...@archive.org> > > Internet Archive > > Thanks. Some of the long lines got wrapped in the mail. > Not sure if it was my client or the list, but here it is again > with shorter lines that hopefully do not get wrapped: > > for field in ID_NET_NAME_FROM_DATABASE \ > ID_NET_NAME_ONBOARD \ > ID_NET_NAME_SLOT \ > ID_NET_NAME_PATH \ > ID_NET_NAME_MAC; do > name=$(udevadm info /sys/class/net/$NIC1 | \ > sed -rn "s/^E: $field=(.+)/\1/p") > if [[ $name ]]; then > NIC1=$name > break > fi > done > if [[ ! $name ]]; then > echo "$0: error: could not find systemd predictable network name" > exit 1 > fi
Fyi: Thomas now has a very good and more correct script than this in the example config's 30-interface. One issue I had is that it won't detect the new name when installing a kvm vm using a jessie based nfsroot. It will work using a stretch one, and it has worked for me on physical machines. This is a limitation of the udev/kernel/something version in jessie. If you don't want to update to stretch nfsroot yet (which seems to work fine btw), but still want to install stretch vms, here is a workaround: in 30-interface, just before the error condition which currently says "if [[ ! $name ]]; then", at the end of the newnicnames function, insert: if grep ^52:54:00: /sys/class/net/eth0/address &>/dev/null; then NIC1=ens3 return fi The conditions checks that that the mac is in the libvirt range. Another thing to remember, if you update to a stretch nfsroot, the default basefile will be stretch, so to install jessie and not rely on the default basefile, you need to for example wget http://fai-project.org/download/basefiles/JESSIE64.tar.xz into the basefile directory and set the class JESSIE64.