Quero configurar o Ubuntu 16.04 como um live CD. Isso funcionou muito bem no Ubuntu 12.04, mas com o 16.04 há problemas. Os serviços estão travando, o CRON não funciona, o X não funciona, não consigo nem fazer login no shell. Então acho que 16.04 precisa de algumas modificações. Se eu montar a unidade raiz como leitura/gravação, tudo funcionará como deveria. Então, o próprio sistema operacional está OK.
Para permitir que o Ubuntu inicialize em modo somente leitura, substituo o parâmetro do kernel "rw" por "ro" e uso um script no initramfs:
/etc/initramfs-tools/scripts/init-bottom/ro_root
#!/bin/sh
PREREQ=''
prereqs() {
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
ro_mount_point="${rootmnt%/}.ro"
rw_mount_point="${rootmnt%/}.rw"
# Create mount points for the read-only and read/write layers:
mkdir "${ro_mount_point}" "${rw_mount_point}"
# Move the already-mounted root filesystem to the ro mount point:
mount --move "${rootmnt}" "${ro_mount_point}"
# Mount the read/write filesystem:
mount -t tmpfs root.rw "${rw_mount_point}"
# Mount the union:
mount -t aufs -o "dirs=${rw_mount_point}=rw:${ro_mount_point}=ro" root.union "${rootmnt}"
# Correct the permissions of /:
chmod 755 "${rootmnt}"
# Make sure the individual ro and rw mounts are accessible from within the root
# once the union is assumed as /. This makes it possible to access the
# component filesystems individually.
mkdir "${rootmnt}/ro" "${rootmnt}/rw"
mount --bind "${ro_mount_point}" "${rootmnt}/ro"
mount --bind "${rw_mount_point}" "${rootmnt}/rw"
# ro_root end
Como configurar o Ubuntu 16.04 com unidade raiz ro e camada rw fs corretamente?
Responder1
Use o pacote padrão do Ubuntu "overlayroot". No Ubuntu 16.04, este pacote é instalado automaticamente. Você simplesmente precisa habilitá-lo editando /etc/overlayroot.conf e adicionando a seguinte configuração:
overlayroot="tmpfs"
Reinicie o sistema Ubuntu 16.04 e pronto. Você pode querer adicionar uma entrada de inicialização do kernel à sua configuração do grub para facilitar a desativação temporária do sistema de arquivos raiz somente leitura para patches, etc. A maneira de fazer isso é adicionar uma entrada do grub que passe um argumento do kernel como segue:
overlayroot=disabled
Veja mais em:https://spin.atomicobject.com/2015/03/10/protecting-ubuntu-root-filesystem/