Я настраиваю встроенную систему, используя systemd-nspawn
для выполнения некоторых команд в среде. Работает нормально, но некоторые символические ссылки не создаются.
Это часть моего сценария:
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
Я получаю несколько ошибок, подобных этой, для команд move
и ln
:
Неподдерживаемый ioctl: cmd = 0x40049409
Поведение довольно странное. Файлы, которые вызвали эту ошибку, на самом деле копируются и не перемещаются. Я предполагаю, что ссылки не созданы, потому что файл существует (хотя это не появляется в консоли, только сообщение выше).
НО, открытие оболочки в systemd-nspawn
и запуск этих команд вручную (копирование и вставка из приведенного выше скрипта) работает нормально. Все файлы перемещены и ссылки созданы.
Какую разницу я должен искать?