LINUX.ORG.RU

Перемонтируем ro в rw

 ,


1

2

Добрый день. Есть ТВ приставка, хочу редактировать содержимое файловой системы. Сейчас на ней залита прошивка провайдера, файловая система ubifs, ro. Модель приставки - imaqliq g-box.

mount
rootfs on / type rootfs (rw)
ubi0:rootfs on / type ubifs (ro,relatime)
devtmpfs on /dev type devtmpfs (rw,size=177556k,nr_inodes=44389,mode=755)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
tmpfs on /tmp type tmpfs (rw,relatime,size=98304k,mode=777)
tmpfs on /media type tmpfs (rw,relatime)
ubi1:config on /etc/config type ubifs (rw,relatime)
cat proc/cpuinfo
machine         : stb9
processor       : 0
cpu family      : sh4
cpu variant     : st40-300
cpu type        : STxH205
cut             : 2.x
cpu flags       : fpu icbi synco fpchg
cache type      : split (harvard)
icache size     : 32KiB (2-way)
dcache size     : 32KiB (2-way)
address sizes   : 32 bits physical
bogomips        : 544.76
df -h
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs              55.3M     55.3M         0 100% /
devtmpfs                173.4M         0    173.4M   0% /dev
tmpfs                   173.5M      4.0K    173.4M   0% /dev/shm
tmpfs                    96.0M    120.0K     95.9M   0% /tmp
tmpfs                   173.5M         0    173.5M   0% /media
ubi1:config               3.0M    120.0K      2.7M   4% /etc/config
uname -a
Linux 2.6.32.59-b2067 #1 Fri May 22 02:51:55 MSK 2015 sh4 GNU/Linux
Что пробовал -
mount -o rw,remount / 
mount -t ubifs -o remount,rw ubi0:rootfs /
В dmesg в обоих случаях вываливается это
 UBIFS: cannot re-mount due to prior errors
Помогите, куда дальше копать?)

Ответ на: комментарий от anonymous
cat /proc/cmdline
console=ttyAS0,115200 root=ubi0:rootfs rootfstype=ubifs ro bigphysarea=2000 ubi.mtd=11 nwhwconf=device:eth0,hwaddr:CC:09:C8:AA:AA:AA
cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "u-boot_0"
mtd1: 00080000 00020000 "superblock_0"
mtd2: 00100000 00020000 "splash_0"
mtd3: 00400000 00020000 "kernel_0"
mtd4: 00080000 00020000 "rootfs_sb_0"
mtd5: 04e80000 00020000 "rootfs_0"
mtd6: 00080000 00020000 "u-boot_1"
mtd7: 00080000 00020000 "superblock_1"
mtd8: 00100000 00020000 "splash_1"
mtd9: 00400000 00020000 "kernel_1"
mtd10: 00080000 00020000 "rootfs_sb_1"
mtd11: 04e80000 00020000 "rootfs_1"
mtd12: 00600000 00020000 "jffs"
mtd13: 05000000 00020000 "spare"
tkipaes ()
Ответ на: комментарий от tkipaes

Там где описывается таблица разделов (в ядре или devicetree) отключена запись на раздел в котором лежит rootfs поверх UBI.

anonymous ()
Ответ на: комментарий от tkipaes

Да, как я и говорил:

UBI: MTD device 11 is write-protected, attach in read-only mode

Выложи куда-нибудь дамп ядра из /dev/mtd9:

# dd if=/dev/mtdblock9 of=/tmp/mtd9.dump bs=2048

Также, в твоём устройстве используется флеш на 256 МБ. Флеш разбит на разделы. Один из них «spare» на 80 МБ судя по всему не используется (но это не точно). Можно просто его отформатировать и использовать как JFFS2 или UBI.

anonymous ()
Ответ на: комментарий от tkipaes

Там должно было получится 4 МБ. Попробуй:

# dd if=/dev/mtd9 of=/tmp/mtd9.dump bs=2048

В консоль u-boot можешь зайти и выполнить «printenv»?

Покажи ещё флаги остальных mtd-разделов:

cat /sys/class/mtd/mtd<X>/flags

anonymous ()
Ответ на: комментарий от tkipaes

Не получается скачать. Но так-то всё равно не получится его перезаписать судя по флагам.

Я так понимаю раздел mtd13 используется скорее всего только для обновления ПО. Можно его очистить (flash_erase) и монтировать как jffs2 - будет у тебя 80 МБ для развлечений.

Иначае нужно искать твою текущую прошивку и патчить флаги разделов в бинарнике ядра. Если я правильно понимаю предназначение mtd13, то там могла остаться прошивка, если твой девайс перепрошивали.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.