Как автоматически запускать команды терминала при запуске в 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

Другие вопросы по тегам