Как автоматически запускать команды терминала при запуске в Lubuntu 14.04 LiveCD?
Я делаю ремастеринг Lubuntu 14.04 LiveCD, и мне нужно при запуске запустить следующую команду:
/sbin/ifconfig eth0 10.10.10.1 netmask 255.255.0.0
Сначала я попытался изменить rc.local следующим образом:
#!/bin/sh -e
#
# rc.local
/sbin/ifconfig eth0 10.10.10.1 netmask 255.255.0.0
exit 0
Бит выполнения был установлен через:
chmod +x /etc/rc.local
Это не сработало, поэтому я попытался написать этот bash-скрипт (для которого я установил исполняемый файл) и поместить его в / usr / bin /
#!/bin/bash
/sbin/ifconfig eth0 10.10.10.1 netmask 255.255.0.0
В связи с вышеуказанным действием я изменил rc.local таким образом:
#!/bin/sh -e
#
# rc.local
/usr/bin/myscript
exit 0
Не сработало Сохраняя скрипт bash в / usr / bin /, я отредактировал /etc/xdg/lxsession/Lubuntu/autostart с помощью этой строки:
@/usr/bin/myscript
Это тоже не дало желаемого результата. Я сделал ошибку с чем-то, что я попробовал, или я должен делать что-то еще?
РЕДАКТИРОВАТЬ:
Я не смог понять, как использовать параметры Каспера, упомянутые в ответе Старейшины Грека. Любая дальнейшая помощь в этом направлении будет принята с благодарностью.
Однако комментарии в размещенной им ссылке оказались полезными. Один комментатор отметил, что сценарий bash, расположенный в /usr/share/initramfs-tools/scripts/casper-bottom/23networking, может быть отредактирован для назначения статического ip для eth0.
Комментатор также упоминает о редактировании файла /etc/network/interfaces, что я и сделал. Это работает, но по цене: длительная задержка при загрузке в ожидании настройки сети. Вот соответствующие биты:
/ и т.д. / сеть / интерфейсы
auto eth0
iface eth0 inet static
address 10.xxx.xxx.xxx
netmask 255.255.255.0
gateway 10.xxx.xxx.xxx
~/ ISOLINUX / isolinux.cfg
default live
label live
say Booting an Ubuntu Live session...
kernel /casper/vmlinuz
append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ip=frommedia --
По моему опыту, обычно происходит следующее: независимо от того, какие изменения вы вносите в файл сети / интерфейсов, при загрузке LiveCD он переводится в состояние по умолчанию с помощью сценария 23networking bash, который я упоминал ранее. Редактирование ip=frommedia в конце isolinux.cfg заставляет скрипт использовать все, что присутствует в файле network / interfaces.
Как упомянул комментатор, сетевой скрипт 23 может быть отредактирован для установки статического ip. Если кто-то может помочь мне с этим (не очень хорошо с bash-скриптингом), это было бы здорово.
1 ответ
Если я попытаюсь бежать /sbin/ifconfig eth0 10.10.10.1 netmask 255.255.0.0
вручную получаюSIOCSIFADDR: Operation not permitted
SIOCSIFFLAGS: Operation not permitted
SIOCSIFNETMASK: Operation not permitted
Следуя логике этого, я попытался
sudo /sbin/ifconfig eth0 10.10.10.1 netmask 255.255.0.0
Который выполнен без ошибок. Казалось бы, для успеха вам нужны полномочия суперпользователя.
Вы можете найти эту документацию полезной: https://help.ubuntu.com/community/LiveCDCustomization
Дальнейшее исследование по ссылке выше показывает, что есть параметр Каспера, который имеет вид:
ф =IFACE, АДРЕС,NETMASK,GATEWAY[:IFACE, АДРЕС,NETMASK,GATEWAY]*
Я нашел это, прибегая к помощи Ubuntu Live CD с пользовательским статическим ip