Estou personalizando um sistema incorporado usando systemd-nspawn
para executar alguns comandos no ambiente. Funciona bem, mas alguns links simbólicos não são criados.
Esta é a parte do meu script:
systemd-nspawn -q --bind /usr/bin/qemu-arm-static -D $MOUNTPATH /bin/bash << EOF
mkdir -p /home/pi/etc/network
cd /home/pi/etc/network
mv /etc/wpa_supplicant/wpa_supplicant.conf .
mv /etc/dhcp/dhcpd.conf .
mv /etc/default/isc-dhcp-server .
mv /etc/network/interfaces .
mv /etc/default/hostapd .
mv /etc/resolv.conf .
ln -s /home/pi/etc/network/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf
ln -s /home/pi/etc/network/interfaces /etc/network/interfaces
ln -s /home/pi/etc/network/dhcpd.conf /etc/dhcp/dhcpd.conf
ln -s /home/pi/etc/network/isc-dhcp-server /etc/default/isc-dhcp-server
ln -s /home/pi/etc/network/hostapd.conf /etc/hostapd/hostapd.conf
ln -s /home/pi/etc/network/hostapd /etc/default/hostapd
ln -s /home/pi/etc/network/resolv.conf /etc/resolv.conf
chown -R pi:pi /home/pi/
EOF
Recebo vários erros como este nos comandos move
e ln
:
Unsupported ioctl: cmd=0x40049409
O comportamento é bem estranho. Os arquivos que geraram esse erro são realmente copiados e não movidos. Eu acho que os links não são criados porque o arquivo existe (embora isso não apareça no console, apenas a mensagem acima).
MAS, abrir um shell em systemd-nspawn
e ativar manualmente esses comandos (copiar e colar do script acima) funciona bem. Todos os arquivos são movidos e links são criados.
Que diferença devo procurar?