Estou tentando criar uma imagem do Linux com pacotes selecionados personalizados.
O que estou tentando fazer é criar manualmente os pacotes que vou usar em um laptop XO, porque a compilação de pacotes leva muito tempo no hardware XO real, se eu puder construir todos os pacotes necessários e apenas exibir o imagem ao XO, posso economizar tempo e espaço.
Quando tentei instalar alguns pacotes, ele não foi configurado devido à falta dos diretórios proc, sys, dev. Então, aprendi em outros lugares que preciso "montar" os diretórios proc, ... no meu ambiente chroot.
Eu vi duas sintaxe e não tenho certeza qual usar.
Na máquina host:
mount --bind /proc <chroot dir>/proc
e outra sintaxe (no ambiente chroot):
mount -t proc none /proc
Qual devo usar e qual a diferença?
chroot()
'. Em particular, o determinado pode ler arquivos fora de sua seção do sistema de arquivos, se você não tomar cuidado.Respostas:
Para
/proc
e/sys
, suponho que você possa usar qualquer um dos métodos. Ambos são sistemas de arquivos especiais para que possam ser recriados inúmeras vezes (o método de montagem de ligação usa exatamente a mesma montagem que o sistema host, enquanto o outro método usa uma nova montagem). Eu sempre vi a montagem de ligação recomendada nos guias, então eu usaria isso. Até onde eu sei, não há diferença realmente importante.No entanto,
/dev
geralmente é uma montagem tmpfs gerenciada pelo udev, portanto, deve ser o mesmo sistema de arquivos da máquina host. Isso significa que você precisaria usar o método de montagem de ligação.Se esse chroot permanecer por algum tempo, você poderá inserir essas entradas no
/etc/fstab
sistema host para simplificar as coisas.fonte
sys
type
sistema de arquivos of ( hoje ) pareça não existir mais?O Arch Linux Wiki sugere os seguintes comandos:
fonte
--rbind
parasys
edev
.O Manual do Gentoo chama especificamente esses dois comandos para remontar / proc e / dev. Eu os usei várias vezes.
Eu suspeito / sys é apenas uma pasta comum, então você deve poder criar um link físico.
fonte
Pode ser interessante notar nesta pergunta popular, que o Arch Linux criou um script arch-chroot ; baixar
arch-install-scripts-15-1-any.pkg.tar.xz
Isso cuida de vários problemas relacionados, tanto no Arch-Linux quanto no Manjaro , onde eu também o usei com sucesso. Possivelmente mais derivados do Arch, como Parabola, também são compatíveis.
Embora um padrão simples
chroot
em uma instalação secundária do Manjaro não permita que você execute(a bala de prata após uma falha no sistema), substituindo a linha por
permitirá que você conserte sua instalação secundária derivada do Arch via
como um encanto. O script bash
arch-chroot
cuida/dev /sys /proc
e muito mais, que são deixados sozinhos pelo padrãochroot
.veja também: Usando arch-chroot
fonte
Existem outros locais de pseudo sistemas de arquivos e tmpfs. Isto está no debian:
Ele deve estar bem para montar o
usbfs
,rpc_pipefs
edevpts
pseudo-sistemas de arquivos de dentro do chroot. Eu recomendo não vincular/proc
ao chroot/proc
, já que o kernel tem o conceito de namespaces e pode realmente colocar coisas diferentes no processo do chroot.Atualização: de acordo com este encadeamento da lista de discussão , / sys não deve ser montado em ligação, especialmente se os processos chrootados estiverem usando seu próprio espaço para nome de rede.
É uma má ideia montar o sistema
/var
ou/run
no chroot, se o chroot tiver seu próprio espaço de nome pid.fonte
A maneira mais fácil é usar um loop for:
fonte