在嵌入式文件系统上挂载根分区

在嵌入式文件系统上挂载根分区

Linux嵌入式文件系统(Linux v. 2.6.26.5)运行在原始NAND闪存上,它使用Full Image的RootFS。 U-boot 2009.03 引导加载程序。我需要在内核完全加载后访问 shell,以便我可以重置密码。目前我使用busybox紧急shell,因此Linux内核未完全加载,根分区未安装,未加载所有驱动程序,并且许多命令不起作用。我需要挂载根分区,但我不知道真正的根分区是什么/dev。引导日志包含一些行,

Kernel command line: console=ttyS1,115200n8 rootfstype=squashfs noalign half_image=0 verify=y

LINUX_ROOTFS is 4
VFS: Mounted root (squashfs filesystem) readonly.
...

我猜 root 可以/dev/mtdblock5,但不确定。挂载根分区的正确命令是什么?

mount /dev/mtdblock5 /

另外,如果我没有猜测分区并设置错误,最坏的情况是什么?

编辑:我尝试过 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

我管理挂载/proc。但无法挂载/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

答案1

对于挂载分区,第一步是知道“哪里”是:

fdisk -l 

答案一定是这样的:

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

在最后一部分中,您可以看到分区的“位置”!仅使用您建议的命令来其余安装它们:“安装”(显然:-))

对于第二个问题:我认为你不会破坏某些东西......在最坏的情况下,提示会给你一个错误。

问候

答案2

抱歉回复晚了,我的工作中只有互联网。

因此,您可以改用lsblkfdisk结果如下:

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  

可以看到sda2分区没有挂载,我挂载:

root@CyborgPC /h/cyborg# mount /dev/sda2 /media/cyborg/Almacen

并再次使用 lsblk:

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 

正如您所看到的,它lsblk为您提供了找到设备的路径/dev,如果已安装,则为您提供本地化信息。

希望你能解决你的问题。

相关内容