O Epidemic em aufs?

Críticas, opiniões, sugestões e colaboração para o desenvolvimento do Epidemic 4.1 Beta 2
Avatar do usuário
Bequimão
Epidemic Administrador
Mensagens: 466
Registrado em: Dom Out 10, 2010 10:40 am
Localização: Mannheim, Alemanha

O Epidemic em aufs?

Mensagempor Bequimão » Dom Fev 15, 2015 2:26 pm

Olá amigos,

Além do systemd e do suporte do UEFI temos uma terceira novidade, o Fenix Down. E isto significa um sistema de arquivos em duas camadas (ou ainda mais ??).

Código: Selecionar todos

root@ebox:/boot# mount -l
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=1015163,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=1628404k,mode=755)
tmpsf on /.epd type tmpfs (rw,relatime,size=6513616k)
/dev/sda9 on /.epd/root type ext4 (rw,relatime,data=ordered) [epidemic-test]
/dev/loop0 on /.epd/core type squashfs (ro,relatime)
none on / type aufs (rw,relatime,si=c34259a74e4f1215)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=21,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=814204k,mode=700,uid=1000,gid=1000)


James,

Antes de entender esta estrutura complicadissima, tenho uma pergunta mais prática. Como faço para montar o root do Epidemic 4.1 beta 2 do lado de fora, de um sistema live ou de uma outra instalação? Eu quero montar o root, porque faço o backup do /home com um script e o comando rsync quando está offline. Também queria saber como fazer #chroot para o Epidemic.

Abraços
Bequimão
Windows é chato, Linux não funciona.
Avatar do usuário
jamesbenedito
Desenvolvedor
Mensagens: 2683
Registrado em: Ter Mar 13, 2007 7:58 am

Re: O Epidemic em aufs?

Mensagempor jamesbenedito » Qua Fev 18, 2015 8:51 pm

Oi Bequimão.

Na verdade pode haver até cinco camadas:

1ª - core - armazena o sistema base do Epidemic.
2ª - mod - armazena as alterações feitas por quem desejar distribuir uma versão modificada do Epidemic, por exemplo com mais jogos.
3ª - install - armazena as alterações feitas pelo eInject durante o processo de instalação.
4ª - timegate - armazena o ponto de restauração do sistema, caso tenha sido criado.
5º - root - armazena as alterações atuais do sistema.

Pode parecer muito, mas o aufs pode suportar facilmente até 42 camadas e é utilizado como um dos bakends disponíveis em prjetos bastante conhecidos como é o caso do Docker: https://www.docker.com/ .

Com um pouco mais de esforço poderiamos chegar ao mesmo resultado utilizando outros backends como é o caso do devicemapper (utilizado no LVM), overlayfs, vfs ou btrfs, mas optamos pelo aufs porque ele já era usado no Epidemic em modo live.

Quanto as suas perguntas, você pode utilizar a nova versão do echroot para montar o sistema root do Epidemic e executar qualquer comando ou aproveitar para fazer o backup da partição /home como mencionado. Para fazer isso basta executar os seguintes comandos, supondo que o Epidemic tenha sido instalado na partição /dev/sda7:

Código: Selecionar todos

# apt-get update
# apt-get install echroot
# mount /dev/sda7 /mnt
# echroot /mnt/EPD41B264


Quando quiser sair do chroot é só rodar o comando

Código: Selecionar todos

# exit


Ou pressionar as teclas CTRL + D.

Abraços,
james.
Imagem
Avatar do usuário
Bequimão
Epidemic Administrador
Mensagens: 466
Registrado em: Dom Out 10, 2010 10:40 am
Localização: Mannheim, Alemanha

Re: O Epidemic em aufs?

Mensagempor Bequimão » Dom Fev 22, 2015 9:31 am

Oi James,

testei o echroot no novo sistema com UEFI. Instalei o echroot no Debian testing. Infelizmente não funcionou como esperado:

Código: Selecionar todos

root@jessie-kde-2:~# mount /dev/sda9 /mnt
root@jessie-kde-2:~# echroot /mnt/EPD41B264
+ NEWROOT=/mnt/EPD41B264
+ shift
+ '[' 0 '!=' 0 ']'
+ OLDDIR=/root
+ cd /mnt/EPD41B264
+ '[' -e core/epidemic ']'
+ mkdir -p epidemicmnt/core
+ mount -o loop -t squashfs core/epidemic epidemicmnt/core
+ '[' -e mod/emod ']'
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e epidemicmnt/core ']'
+ BRANCHES=epidemicmnt/core=rr:
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e epidemicmnt/mod ']'
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e cron/install ']'
+ BRANCHES=epidemicmnt/core=rr:cron/install=ro+wh:
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e cron/timegate ']'
+ BRANCHES=epidemicmnt/core=rr:cron/install=ro+wh:cron/timegate=ro+wh:
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e root ']'
+ BRANCHES=epidemicmnt/core=rr:cron/install=ro+wh:cron/timegate=ro+wh:root=rw:
+ '[' -d epidemicmnt ']'
+ mkdir -p epidemicmnt/union
+ mount -t aufs -o dirs=epidemicmnt/core=rr:cron/install=ro+wh:cron/timegate=ro+wh:root=rw aufs epidemicmnt/union
mount: wrong fs type, bad option, bad superblock on aufs,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
+ cd epidemicmnt/union
+ for SYSDIR in proc sys dev dev/pts
+ '[' -d proc ']'
+ for SYSDIR in proc sys dev dev/pts
+ '[' -d sys ']'
+ for SYSDIR in proc sys dev dev/pts
+ '[' -d dev ']'
+ for SYSDIR in proc sys dev dev/pts
+ '[' -d dev/pts ']'
+ chroot . /bin/bash
chroot: failed to run command ‘/bin/bash’: No such file or directory
+ for SYSDIR in dev/pts dev sys proc
+ '[' -d dev/pts ']'
+ for SYSDIR in dev/pts dev sys proc
+ '[' -d dev ']'
+ for SYSDIR in dev/pts dev sys proc
+ '[' -d sys ']'
+ for SYSDIR in dev/pts dev sys proc
+ '[' -d proc ']'
+ cd /root
+ for BRANCH in epidemicmnt/union epidemicmnt/mod epidemicmnt/core
+ '[' -d /mnt/EPD41B264/epidemicmnt/union ']'
+ umount /mnt/EPD41B264/epidemicmnt/union
umount: /mnt/EPD41B264/epidemicmnt/union: not mounted
+ for BRANCH in epidemicmnt/union epidemicmnt/mod epidemicmnt/core
+ '[' -d /mnt/EPD41B264/epidemicmnt/mod ']'
+ for BRANCH in epidemicmnt/union epidemicmnt/mod epidemicmnt/core
+ '[' -d /mnt/EPD41B264/epidemicmnt/core ']'
+ umount /mnt/EPD41B264/epidemicmnt/core
+ rm -rf /mnt/EPD41B264/epidemicmnt
+ exit 0


No passado tive que dar suporte a um sistema de release de software proprietário totalmente escrito em Korn shell. A bash é a variação open source da Korn shell. Eles eram verdadeiros magos em ksh. Jurei que nunca mais na minha vida vou mexer com isto! Então deixou a interpretação para você, James!

Abraços
Ulrich
Windows é chato, Linux não funciona.
Avatar do usuário
Bequimão
Epidemic Administrador
Mensagens: 466
Registrado em: Dom Out 10, 2010 10:40 am
Localização: Mannheim, Alemanha

Re: O Epidemic em aufs?

Mensagempor Bequimão » Ter Mar 10, 2015 5:12 pm

Olá amigos,

conversei com James no irc sobre este assunto em 22 de fevereiro. Ele disse que se precisa de um pacote aufs-tools e além disso, o kernel tem que dar suporte ao aufs. O kernel padrão do Debian não faz isto. Se tem que baixar um patch e recompilar o kernel para conseguir este suporte.

No meio-tempo fiz outro teste com o sistema live do Epidemic 4.1 beta 2. Instalei o echroot. Não havia uma versão atualizada do eInject. Mas infelizmente aconteceu o mesmo erro.

Código: Selecionar todos

root@ebox:/home/epidemic# echroot /mnt/EPD41B264
+ OLDDIR=/home/epidemic
+ cd /mnt/EPD41B264
+ '[' -e core/epidemic ']'
+ mkdir -p epidemicmnt/core
+ mount -o loop -t squashfs core/epidemic epidemicmnt/core
+ '[' -e mod/emod ']'
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e epidemicmnt/core ']'
+ BRANCHES=epidemicmnt/core=rr:
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e epidemicmnt/mod ']'
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e cron/install ']'
+ BRANCHES=epidemicmnt/core=rr:cron/install=ro+wh:
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e cron/timegate ']'
+ BRANCHES=epidemicmnt/core=rr:cron/install=ro+wh:cron/timegate=ro+wh:
+ for BRANCH in epidemicmnt/core=rr epidemicmnt/mod=rr+wh cron/install=ro+wh cron/timegate=ro+wh root=rw
+ '[' -e root ']'
+ BRANCHES=epidemicmnt/core=rr:cron/install=ro+wh:cron/timegate=ro+wh:root=rw:
+ '[' -d epidemicmnt ']'
+ mkdir -p epidemicmnt/union
+ mount -t aufs -o dirs=epidemicmnt/core=rr:cron/install=ro+wh:cron/timegate=ro+wh:root=rw aufs epidemicmnt/union
mount: wrong fs type, bad option, bad superblock on aufs,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
+ cd epidemicmnt/union
+ for SYSDIR in proc sys dev dev/pts
+ '[' -d proc ']'
+ for SYSDIR in proc sys dev dev/pts
+ '[' -d sys ']'
+ for SYSDIR in proc sys dev dev/pts
+ '[' -d dev ']'
+ for SYSDIR in proc sys dev dev/pts
+ '[' -d dev/pts ']'
+ chroot . /bin/bash
chroot: failed to run command ‘/bin/bash’: No such file or directory
+ for SYSDIR in dev/pts dev sys proc
+ '[' -d dev/pts ']'
+ for SYSDIR in dev/pts dev sys proc
+ '[' -d dev ']'
+ for SYSDIR in dev/pts dev sys proc
+ '[' -d sys ']'
+ for SYSDIR in dev/pts dev sys proc
+ '[' -d proc ']'
+ cd /home/epidemic
+ for BRANCH in epidemicmnt/union epidemicmnt/mod epidemicmnt/core
+ '[' -d /mnt/EPD41B264/epidemicmnt/union ']'
+ umount /mnt/EPD41B264/epidemicmnt/union
umount: /mnt/EPD41B264/epidemicmnt/union: not mounted
+ for BRANCH in epidemicmnt/union epidemicmnt/mod epidemicmnt/core
+ '[' -d /mnt/EPD41B264/epidemicmnt/mod ']'
+ for BRANCH in epidemicmnt/union epidemicmnt/mod epidemicmnt/core
+ '[' -d /mnt/EPD41B264/epidemicmnt/core ']'
+ umount /mnt/EPD41B264/epidemicmnt/core
+ rm -rf /mnt/EPD41B264/epidemicmnt
+ exit 0


Este teste foi no sistema UEFI em /dev/sda9. É lá onde a instalação do grub falhou. Este comportamento é bastante estranho, porque em geral me parece um sistema são.

Fiz outro teste neste computador em /dev/sda11. Ali consegui instalar o grub - ainda falta um relatório sobre este teste - mas não deu boot. O echroot funciona para esta instalação. Só que a instalação não parece completa, ou o echroot pousa numa das camadas baixas:

Código: Selecionar todos

root@ebox:/home/epidemic# echroot /mnt/EPD41B264
root@ebox:/#
root@ebox:/# mount -l
root@ebox:/#
root@ebox:/# cat /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
root@ebox:/# exit
root@ebox:/home/epidemic#


Além do mais, testei uma atualização do sistema que me parecia bastante lenta. Adivinho assim, que o Epidemic em aufs aumenta os requisitos mínimos de modo significante.

Abraços
Bequimão
Windows é chato, Linux não funciona.
Avatar do usuário
jamesbenedito
Desenvolvedor
Mensagens: 2683
Registrado em: Ter Mar 13, 2007 7:58 am

Re: O Epidemic em aufs?

Mensagempor jamesbenedito » Ter Mai 05, 2015 10:48 am

Oi Bequimão,

Quanto ao echroot, ele ainda está em desenvolvimento. A nova versão de teste do Epidemic que pretendo dsisponibilizar em breve já vai contar com uma nova versão do echroot.

Quanto a demora na atualização dosistema que você reportou, creio que o problema não seja do aufs mas do preempt desta versão do kernel do Epidemic 3.15.2. Vmos poder checar isso com a nova versão de teste do Epidemic que virá com o Kernel 4.0 configurado com uma opção menos agressiva para o preempt.

Abraços,
James.
Imagem

Voltar para “Epidemic 4.1 Beta 2”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes