Como montar o sistema de arquivos aufs ao inicializar no archlinux?

3

Eu quero usar aufs para combinar alguns discos. Eu sou capaz de montar o sistema de arquivos aufs usando o comando mount a partir da linha de comando.

No entanto, ao tentar montar o mesmo por meio de uma entrada fstab, ele falha. O Google me diz que o fstab não monta sistemas de arquivos na ordem especificada, criando este problema. Eu também encontrei recomendações para adicionar o comando mount em rc.local para que o aufs seja montado após fstab.

Estou usando o archlinux que usa o systemd, então como posso executar o comando mount na inicialização no systemd?

    
por Nithin 06.07.2013 / 07:36

6 respostas

8

O Systemd tem suporte nativo para montagens ( man systemd.mount ). Na verdade, o systemd lê /etc/fstab , usa-o para gerar unidades de montagem e monta os próprios sistemas de arquivos.

Em vez de depender de fstab , também é possível criar unidades de montagem manualmente. É assim que as montagens do sistema, como /dev , /sys , /proc , etc, são manipuladas ( /usr/lib/systemd/system/*.mount ). Esse método permite que você use dependências do systemd para garantir que as coisas sejam montadas na ordem correta.

Os arquivos da unidade de montagem

systemd devem ser nomeados após o ponto de montagem que eles controlam ( man systemd.unit ). Como exemplo, criei um arquivo de unidade para montar minha unidade de backup USB em /mnt/backup . Seguindo a convenção de nomenclatura, criei /etc/systemd/system/mnt-backup.mount , com o seguinte conteúdo:

[Unit]
Description = USB backup disk

[Mount]
What = LABEL=david-usb-backup
Where = /mnt/backup
Type = ext4

[Install]
WantedBy = multi-user.target

Eu então executo systemctl daemon-reload para o systemd para carregar a unidade. Posso executar systemctl start mnt-backup.mount para montar o disco e / ou systemctl enable mnt-backup.mount para que ele seja iniciado na inicialização.

Para dependências, adicione Requires = some-other-mnt-point.mount na seção [Unit] . Opcionalmente, você pode usar BindTo em vez de Requires ; isso fará com que ele seja desmontado se uma das dependências desaparecer. No entanto Requires não afeta a ordem em que os discos são montados. Portanto, para garantir que os discos sejam montados antes do aufs, use After .

Editar: para expandir o uso de Requires e After , a seção da unidade pode se parecer com:

[Unit]
Description = USB backup disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount
    
por 06.07.2013 / 11:31
10

Pensei em postar uma instrução passo a passo para outras pessoas como eu. Obrigado a David Baggerman por me ajudar a chegar aqui.

Eu criei /etc/systemd/system/mnt-aufs.mount , com o seguinte conteúdo:

[Unit]
Description = AUFS disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount

[Mount]
What = none
Where = /mnt/aufs
Type = aufs
Options = br:/mnt/data01/=rw:/mnt/data02/=rw:/mnt/data03/=rw,sum,create=mfs

[Install]
WantedBy = multi-user.target

Eu então executei systemctl daemon-reload para o systemd para carregar a unidade. Execute systemctl start mnt-aufs.mount para montar o disco e / ou systemctl enable mnt-aufs.mount para iniciá-lo na inicialização.

Isso é equivalente a copiar o seguinte para o script /etc/rc.local init e seria muito mais fácil. Eu me pergunto por que o systemd não tem um arquivo equivalente.

mount -t aufs -o br:/mnt/disk01=rw:/mnt/disk02=rw: /mnt/disk03=rw,sum,create=mfs none /mnt/aufs
    
por 06.07.2013 / 20:43
1

Se você quiser continuar usando o fstab, tente adicionar _netdev às opções.

none   /mnt/aufs   aufs  sum,create=mfs,dirs=.....,_netdev   0  0

Isso atrasará a montagem até que a rede esteja ativa.

    
por 04.05.2018 / 12:39
0

É melhor você usar o /etc/rc.local

Experimente este exemplo:

# cat > /etc/rc.local << EOF
mount -t squashfs -o loop /usr/src/system_packages.squashfs /var/mount_point/
mount -t aufs -o remount,append:/var/mount_point/ none / 
EOF
    
por 06.07.2013 / 17:14
0

As versões mais recentes do systemd suportam uma opção x-systemd.requires no fstab, portanto, se você não deseja usar as unidades systemd.mount e deseja manter o fstab, tente algo como o seguinte:

aufs /mnt/storage aufs ro,nobootwait,dirs=/mnt/storage2=ro:/mnt/storage1=ro:/mnt/storage3=ro:/mnt/storage4=ro:/mnt/storage0=ro:/mnt/storage5=ro:/mnt/storage6=ro:/mnt/storage7=ro:/mnt/storage8,xino=/dev/shm/aufs.xino,x-systemd.requires=mnt-storage0,x-systemd.requires=mnt-storage1,x-systemd.requires=mnt-storage2,x-systemd.requires=mnt-storage3,x-systemd.requires=mnt-storage4,x-systemd.requires=mnt-storage5,x-systemd.requires=mnt-storage6,x-systemd.requires=mnt-storage7,x-systemd.requires=mnt-storage8  0 0
    
por 14.01.2016 / 02:34
-1

Linux Live Kit - Certifique-se de que os módulos do kernel aufs e squashfs sejam suportados pelo seu kernel. O Debian Jessie foi incluído automaticamente.

Você pode precisar instalar o pacote aufs-dkms em versões mais novas do Debian.

    
por 23.09.2017 / 18:20