Montando partição raiz no sistema de arquivos incorporado

Montando partição raiz no sistema de arquivos incorporado

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 lsblkem 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 lsblkfornece o caminho onde o dispositivo se encontra /deve, se estiver montado, fornece a localização.

Espero que você possa resolver seu problema.

informação relacionada