Встроенная файловая система Linux (Linux v. 2.6.26.5) работает на сырой флэш-памяти NAND, она использует RootFS Full Image. Загрузчик U-boot 2009.03. Мне нужна оболочка доступа после полной загрузки ядра, чтобы я мог сбросить пароль. Сейчас я использую аварийную оболочку busybox, поэтому ядро 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
В последнем разделе вы можете увидеть "где" находятся разделы! Осталось только смонтировать их, с помощью предложенной вами команды: "mount" (очевидно :-) )
По второму вопросу: я не думаю, что вы что-то сломаете... в худшем случае подсказка выдаст вам ошибку.
Привет
решение2
Извините за поздний ответ, у меня интернет только на работе.
Итак, вы можете использовать lsblk
вместо этого fdisk
, вот результаты:
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
и, если оно смонтировано, предоставляют вам локализацию.
Надеюсь, вы сможете решить свою проблему.