Sistema de arquivos embarcado Linux (Linux v. 2.6.26.5) rodando em flash NAND bruto, usa RootFS da Full Image. Carregador de inicialização U-boot 2009.03. Preciso acessar o shell depois que o Kernel estiver totalmente carregado, para poder redefinir a senha. Por enquanto eu uso o shell de emergência do busybox, então o kernel do Linux não está totalmente carregado, a partição raiz não está montada, nem todos os drivers estão carregados e muitos comandos não funcionam. Preciso montar a partição raiz, mas não sei exatamente qual é a partição raiz real /dev
. O log de inicialização contém algumas linhas,
Kernel command line: console=ttyS1,115200n8 rootfstype=squashfs noalign half_image=0 verify=y
LINUX_ROOTFS is 4
VFS: Mounted root (squashfs filesystem) readonly.
...
Eu acho que root pode ser /dev/mtdblock5
, mas não tenho certeza. Qual é o comando correto para montar a partição raiz?
mount /dev/mtdblock5 /
Além disso, qual é o pior cenário, se eu não adivinhar a partição e configurá-la incorretamente?
editar: eu tentei fdisk
BusyBox v1.10.2 (2017-08-02 14:07:25 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/bin/sh: can't access tty; job control turned off
# fdisk -l
/bin/sh: fdisk: not found
#
# mount
mount: no /proc/mounts
#
# lsblk
/bin/sh: lsblk: not found
Eu consegui montar /proc. Mas não é possível montar/dev,/sys.
# cd /
# mount -t dev dev /dev
mount: mounting dev on /dev failed: No such device
# mount -t proc proc /proc
# mount -t sys sys /sys
mount: mounting sys on /sys failed: No such device
# mount -t devpts devpts /dev/pts
mount: mounting devpts on /dev/pts failed: No such file or directory
Responder1
Para montar a partição o primeiro passo é saber "onde" está:
fdisk -l
A resposta deve ser algo assim:
Disk /dev/sda: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00009971
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 10547199 10545152 5G 82 Linux swap / Solaris
/dev/sda2 192243712 1953521663 1761277952 839,9G 7 HPFS/NTFS/exFAT
/dev/sda3 * 10547200 192243711 181696512 86,7G 83 Linux
Na última seção você pode ver “onde” estão as partições! Apenas descanse e monte-os, com o comando que você propõe: "mount" (obviamente :-))
Para a segunda pergunta: não acho que você vai quebrar alguma coisa... na pior das hipóteses, o prompt apresentará um erro.
Saudações
Responder2
Desculpe pela demora na resposta, só tenho internet no meu trabalho.
Então, você pode usar lsblk
em vez disso fdisk
, aqui estão os resultados:
root@CyborgPC /h/cyborg# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 5G 0 part [SWAP]
├─sda2 8:2 0 839,9G 0 part
└─sda3 8:3 0 86,7G 0 part /
sr0 11:0 1 1024M 0 rom
Como você pode ver a partição sda2 não está montada, eu monto:
root@CyborgPC /h/cyborg# mount /dev/sda2 /media/cyborg/Almacen
E use o lsblk novamente:
root@CyborgPC /h/cyborg# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 5G 0 part [SWAP]
├─sda2 8:2 0 839,9G 0 part /media/cyborg/Almacen
└─sda3 8:3 0 86,7G 0 part /
sr0 11:0 1 1024M 0 rom
Como você pode ver, ele lsblk
fornece o caminho onde o dispositivo se encontra /dev
e, se estiver montado, fornece a localização.
Espero que você possa resolver seu problema.