Eu fiz isso há uma semana, porque meu SSD morreu e eu tive que usar um LiveCD e não queria repetir etapas:
As variáveis que usei devem ser explicativas:
ifconfig eth0 $address netmask $netmask
ip route add default via $gateway
echo "nameserver $dns_server" > /etc/resolv.conf
Isso pressupõe que o script será executado como root. Se não, você precisa prefixar sudo
aos dois primeiros comandos e substituir >
no terceiro comando por | sudo tee
. Observe que esses comandos contornam o Network Manager, mas funciona para mim. YMMV
Para instalar programas, você pode usar o apt:
apt-get install vlc apache2 mysql-server php5 [other packages here]
O próximo é recuperado do meu código na instalação do software no meu LiveCD (as permissões de root serão solicitadas pelo sudo):
try_install_yes_to_all=false
try_install () {
# Usage: try_install 'apt_options' package1 package2 ... packageN
# You'll be prompted whether you want to install a (set of) package(s) or not
# Y=Yes, N=No, A=All (do not ask in future)
local opts="$1"
shift
if [ $(dpkg -l "$@" 2>/dev/null | grep '^ii' | wc -l) != $# ]; then
while true; do
$try_install_yes_to_all || printf 'install %s ? [Y/N/A] ' "$*"
$try_install_yes_to_all && yn=Y || read yn
case "$yn" in
[YyAa])
[[ $yn == [Aa] ]] && try_install_yes_to_all=true
sudo apt-get install -y $opts "$@"
break
;;
[Nn])
break
;;
esac
done
fi
}
# install language packs
try_install '' language-pack-kde-nl language-support-nl
# install Firefox without "Recommended:" packages (like firefox-globalmenu)
try_install '--no-install-recommends' firefox
Como certos pacotes exigem um novo login (pacotes de idiomas), editei as opções de inicialização adicionando a próxima linha às opções do kernel:
init=/bin/bash
Isso carregará um shell em vez de fazer uma inicialização normal. Com esse shell, talvez seja necessário executar modprobe usb-storage
se o seu pendrive com o script não tiver sido inserido no sistema.
Em seguida, monte sua partição com o script e execute-a:
mount /dev/sdc1 /mnt
/mnt/script-to-run
Note que você não pode usar Ctrl + C ou descritores de arquivos. Se você precisar terminar todos os programas incluindo o script, emita o atalho Alt + SysRq + E . Se o script ainda estiver em execução, force a eliminação de todos os processos com: Alt + SysRq + i .
Quando o script estiver concluído, desmonte a partição:
umount /mnt
Para continuar a inicialização normal, execute:
exec init