Para que servem esses comandos?

10

Ontem, tive que instalar um Windows com a substituição do Grub.

Bem, não é a primeira vez que eu tive que consertar o Grub, então eu usei o LiveCD, montei a partição raiz (não tenho boot, apenas / e home ) e executei grub-install --root-directory=/mnt/ /dev/sda . No entanto, não funcionou.

Depois de pesquisar um tempo, achei um tutorial em que, em vez de apenas montar a partição do Linux, ele também criou mount --bind /mnt/dev /dev e mount --bind /mnt/proc /proc/ . Depois disso chroot to /mnt e depois instalou o Grub, e usando este método, funcionou.

Quais são os comandos mount --bind para? Estou familiarizado com o uso de --bind used (man page), mas não sei por que foi usado neste exemplo.

    
por yzT 07.05.2013 / 11:34

2 respostas

10

proc e sys filesystems são fornecidos pelo kernel em execução - quando o kernel não está em execução, eles deixam de existir. Isso significa que, quando você faz o chroot em outro sistema operacional, esses sistemas de arquivos não estão presentes. Muitos programas esperam que eles existam para que possam funcionar, por exemplo, eles podem requerer informações sobre o sistema em execução ou modificar a maneira como o kernel manipula algo. Geralmente, é suficiente simplesmente fornecer /proc e /sys do kernel atual para que esses programas funcionem como esperado.

Um link simbólico não seria suficiente, pois o ato de chrooting invalidaria os caminhos de arquivo usados. No Linux, você também não pode criar diretórios de link físico (além de . e .. , conforme fornecido por mkdir ). Isso significa que uma terceira opção deve ser usada para espelhar esses sistemas de arquivos para o ambiente chrooted - vincular a montagem. Uma montagem de ligação é fornecida diretamente pelo kernel e funciona como esperado dentro de um chroot.

    
por 07.05.2013 / 11:50
0

A opção --bind permitirá que o ponto de montagem apareça em um ambiente chroot -ed.

    
por 07.05.2013 / 11:50