Ubuntu 16.04 com sistema de arquivos de leitura e camada gravável

1

(Este é um post cruzado de askubuntu , como acho que há mais pessoas para saber como fazer isso funcionar

Eu quero configurar o Ubuntu 16.04 como um CD ao vivo. Isso funcionou muito bem no Ubuntu 12.04, mas com o 16.04 há problemas. Os serviços estão falhando, o CRON não funciona, o X não funciona, nem consigo acessar o shell. Então eu acho que o 16.04 precisa de alguma modificação. Se eu montar o drive raiz como leitura / gravação, tudo funcionará como deveria. Então, o sistema operacional está bom.

Para deixar o Ubuntu inicializar no modo somente leitura, eu 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 a unidade raiz ro e a camada rw fs corretamente?

    
por Michael 12.05.2016 / 08:30

1 resposta

1

Use o pacote padrão do Ubuntu "overlayroot". No Ubuntu 16.04, este pacote é instalado automaticamente. Você só precisa ativá-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 grub para facilitar a desabilitaçã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 da seguinte maneira:

overlayroot=disabled

Veja mais em: link

    
por 16.02.2017 / 17:39