De vez em quando, precisamos acessar outra partição diferente da nossa do boot, para corrigir erros.
Muitos sabem que isso é feito a partir de um Live-CD ou do boot de um outro
GNU/Linux, em outra partição. Para fazer isso, usamos "montar" (comando
mount) e depois usando
chroot.
Até aí tudo bem, mas tenho visto na Net, muitos erros reportados, tanto na montagem como no
chroot. Exemplos:
MOUNT: "Tal dispositivo não existe ou não está no fstab"
CHROOT: "/dev/null permissão negada"
Tais erros ocorrem porque o "ponto de montagem" não é achado e/ou porque o sistema "protege" e não deixa acessar.
Mas há um jeito fácil de driblar isso, é criando um diretório auxiliar, para o qual temos permissões amplas.
Vamos ver. A próxima vez que precisar de um
chroot, faça assim:
1. Faça boot no Live-CD ou no outro GNU/Linux. Como root, crie uma pasta auxiliar e depois a acesse, vá para ela:
# mkdir /mnt/nome
# cd /mnt/nome
Onde "nome", é um nome qualquer que inventou.
2. Agora, "monte" o seu dispositivo, ou partição (a que quer acessar), nessa pasta:
# mount /dev/sdXY /mnt/nome
Onde X e Y são os descritores do dispositivo ou partição que quer acessar. Por exemplo, se for o seu GNU/Linux que está na partição 3 do seu único HDD, será "sda
3".
3. Agora "faça chroot":
# chroot /mnt/nome /bin/bash
E pronto!
Testando
Quer ver como funcionou?
No terminal, o "nome" que usei foi "rota", e acessei a partição "sdb5" do meu
Sabayon principal, a partir do meu outro Sabayon de testes.
A "mudança" do terminal e o comando
ls, mostram que funcionou, estou na raiz de sdb5:
sudo mkdir /mnt/rota
$ cd /mnt/rota
$ sudo mount /dev/sdb5 /mnt/rota
$ sudo chroot /mnt/rota /bin/bash
# ls
12117 boot etc lib libpng14.so.14 opt root sys var
62019 dev home lib32 media proc run tmp
bin erros install-data lib64 mnt -q sbin usr
Espero ter ajudado! Até a próxima!
Alberto
Estou tentando consertar a dificuldade que tive com a clonagem de pendrive bootável com win10
que fiz com dd
# dd if=/dev/sdc of=/dev/hdb
-- mas não arranca, parece não ter boot
Então li teu artigo acima - Fazendo "CHROOT" facilmente -
Mas:
root@deb9sub:/# mount /dev/sdb /mnt/nome
mount: tipo de sistema de arquivos incorreto, opção inválida,
superbloco inválido em /dev/sdb, página de código ou programa
auxiliar faltando ou outro erro
Em alguns casos, informações úteis são encontradas no
syslog - tente "dmesg | tail" ou algo assim.
root@deb9sub:/# dmesg | tail
[ 73.923901] sd 6:0:0:0: [sdb] Write Protect is off
[ 73.923904] sd 6:0:0:0: [sdb] Mode Sense: 23 00 00 00
[ 73.926706] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 73.932653] sdb: sdb1
[ 73.939095] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[ 76.138059] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 1)
[ 76.138063] FAT-fs (sdb1): Filesystem has been set read-only
[ 112.945713] systemd[1]: apt-daily-upgrade.timer: Adding 31min 33.744452s random time.
[ 114.377983] sdb: sdb1
[ 135.505403] systemd[1]: apt-daily-upgrade.timer: Adding 28min 14.451566s random time.
root@deb9sub:/# mount /dev/sdb1 /mnt/nome
mount: /dev/sdb1: não foi possível ler o superbloco
root@deb9sub:/#
- - -
Então, poderias dar uma sugestão aqui?
Abraço.