Zugriff auf RootFS der unbenutzten Bank

Benutzeravatar
Janus
NI - VIP
Beiträge: 1138
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K

Zugriff auf RootFS der unbenutzten Bank

Beitrag von Janus »

Sorry, ich hatte das schonmal im falschen Bereich als OT-Nachtrag gefragt.
Passt natürlich hier besser, zumal die CST-Boxen schon was älter sind und allgemein nicht mehr so relevant sind.

Nach dem Flashen eines aktuellen Selbstbaus für meinen Tank in die Bank 1, ist mir ein Vebesserungsvorschlag wieder eingefallen:

Gibt es einen Trick von einem laufenden Image in Bank 1 auf das Filesystem (RootFS) in Bank 0 zuzugreifen ?
In den Multiboot-Images (HD51 und Duo4K) geht das ja 'automatisch' über vorhandene Links in /mnt oder /media.
Eine Mount-Anweisung vielleicht, die man selbst in die Startsequenz einbauen kann ?

Ich wollte z.B. in Bank 0 den String "BOOT NI-IMAGE" in "Boot NI Bank 0" ändern, damit ich beim Start der Box besser erkennen kann, welche Version gerade startet. Die Meldung des Bootloaders ist so klein und so schnell weg, dass ich das nicht mitbekomme ohne mich direkt vor die Box zu legen und konzentriert das Display anzustarren.

Manchmal hat man ja auch bei dem "Neuen" was 'Aktuelles' vergessen oder eine Änderung gemacht, die man sofort in die andere Bank übernehmen will. Kopieren (Telnet|FTP|TuxCom) wäre einfacher als Hin- und Herschalten mit Transfer über ein Zwischenmedium.
Nach den bisherigen Erfahrungen mit den o.g. Multiboot-Images dürfte das auch keine Probleme für die Anwender bereiten, wenn man das generell ins Tank-Image einbaut.

Das Ganze braucht nix in der Benutzeroberfläche, sofern beim Booten die aktive Partition erkannt und die jeweils andere danach entsprechend verlinkt wird. Ich würde dafür /mnt/rootfs[0|1] vorschlagen.
Den Partitionswechsel selbst kann man ja wie gewohnt mit der Menü-Taste im Bootloader steuern.
seife
Beiträge: 126
Registriert: Mi 20. Okt 2021, 15:20
Been thanked: 1 time

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von seife »

Da ich keine Coolstream Box mit mehreren Bänken habe, frage ich mal "trocken" nach:
  1. Was steht in /proc/partitions
  2. was sagt "mount" über das root fs
  3. was steht in /proc/cmdline
Damit kann man dann sagen was du tun mußt :-)
Benutzeravatar
annie
NI - Team
Beiträge: 1010
Registriert: Di 5. Apr 2016, 18:46
Wohnort: zuhause
Box: 1x E4HD, 4x HD51,1x VuUno4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von annie »

Tank:

Code: Alles auswählen

/var/root # mount
rootfs on / type rootfs (rw)
mtd:root0 on / type jffs2 (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=123480k,nr_inodes=30870,mode=755)
proc on /proc type proc (rw,relatime)
sys on /sys type sysfs (rw,relatime)
tmp on /tmp type tmpfs (rw,relatime)
media on /media type tmpfs (rw,relatime)
srv on /srv type tmpfs (rw,relatime)
mnt on /mnt type tmpfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
/dev/mtdblock1 on /var type jffs2 (rw,relatime)
nfs on /var/lib/nfs type tmpfs (rw,relatime)
samba on /var/samba type tmpfs (rw,relatime)

Code: Alles auswählen

/var/root # cat /proc/partitions
major minor  #blocks  name

  31        0     262144 mtdblock0
  31        1      32768 mtdblock1
  31        2     753664 mtdblock2
  31        3        256 mtdblock3
  31        4        512 mtdblock4
  31        5        128 mtdblock5
  31        6        128 mtdblock6
  31        7       3072 mtdblock7
 179        0    7761920 mmcblk0
 179        1    7757824 mmcblk0p1
   8        0 1953514584 sda
   8        1 1953513560 sda1

Code: Alles auswählen

/var/root # cat /proc/cmdline
noinitrd console=ttyS0,115200n8 mtdparts=e0632000.flash_sfc:256k@0k(uldr),512k@256k(u-boot),128k@768k(env),128k@896k(spare),-(kernel);e0631000.flash_nand:256m@0k(root0),32m@256m(var),-(root1) root=mtd:root0 rootfstype=jffs2 rw
Benutzeravatar
Janus
NI - VIP
Beiträge: 1138
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von Janus »

Sieht hier ähnlich aus (Block 1 aktiv, Block 0 inaktiv):

Code: Alles auswählen

/var/root # mount
rootfs on / type rootfs (rw)
mtd:root1 on / type jffs2 (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=123480k,nr_inodes=30870,mode=755)
proc on /proc type proc (rw,relatime)
sys on /sys type sysfs (rw,relatime)
tmp on /tmp type tmpfs (rw,relatime)
media on /media type tmpfs (rw,relatime)
srv on /srv type tmpfs (rw,relatime)
mnt on /mnt type tmpfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
/dev/mtdblock1 on /var type jffs2 (rw,relatime)
nfs on /var/lib/nfs type tmpfs (rw,relatime)
samba on /var/samba type tmpfs (rw,relatime)
/dev/sda1 on /media/sda1 type ext4 (rw,relatime,data=ordered)
/dev/mmcblk0p1 on /media/mmcblk0p1 type ext4 (rw,relatime,data=ordered)
/var/etc/auto.net on /mnt/autofs type autofs (rw,relatime,fd=6,pgrp=709,timeout=300,minproto=5,maxproto=5,indirect)
//fritz/../fb128GB/scan on /mnt/settings type cifs (...)

/var/root # cat /proc/partitions
major minor  #blocks  name

  31        0     262144 mtdblock0
  31        1      32768 mtdblock1
  31        2     753664 mtdblock2
  31        3        256 mtdblock3
  31        4        512 mtdblock4
  31        5        128 mtdblock5
  31        6        128 mtdblock6
  31        7       3072 mtdblock7
 179        0   62782464 mmcblk0
 179        1   62782456 mmcblk0p1
   8        0  976762584 sda
   8        1  976760001 sda1


/var/root # cat /proc/cmdline
noinitrd console=ttyS0,115200n8 mtdparts=e0632000.flash_sfc:256k@0k(uldr),512k@256k(u-boot),128k@768k(env),128k@896k(spare),-(kernel);e0631000.flash_nand:256m@0k(root0),32m@256m(var),-(root1) root=mtd:root1 rootfstype=jffs2 rw
/var/root #
seife
Beiträge: 126
Registriert: Mi 20. Okt 2021, 15:20
Been thanked: 1 time

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von seife »

Das mit dem "mtd:root0" und "mtd:root1" ist mir neu, ich bin mir aber ziemlich sicher, daß

/dev/mtdblock0 -> root0
/dev/mtdblock2 -> root1 ist,

also wenn root0 das aktuelle rootfs ist, dann könntet ihr mit "mount /dev/mtdblock2 /mnt" das andere rootfs nach /mnt mounten.

Das könnte man mit einem kleinen Skript das entweder aus /proc/cmdline oder aus dem "mount" output rausliest ob gerade das eine oder das andere gemounted ist, und das jeweils andere an einen definierten Ort mounted automatisieren. Da ich keine entsprechende Box hier habe, überlasse ich das euch mal als Übung ;-)

Irgendwas in der Art:

Code: Alles auswählen

if grep -q "root=mtd:root1" /proc/cmdline; then
    mount -t jffs2 /dev/mtdblock0 /mnt/other
elif grep -q "root=mtd:root0" /proc/cmdline; then
    mount -t jffs2 /dev/mtdblock2 /mnt/other
fi
Benutzeravatar
annie
NI - Team
Beiträge: 1010
Registriert: Di 5. Apr 2016, 18:46
Wohnort: zuhause
Box: 1x E4HD, 4x HD51,1x VuUno4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von annie »

/var/root # mount /dev/mtdblock2 /mnt
NTFS signature is missing.
Failed to mount '/dev/mtdblock2': Invalid argument
The device '/dev/mtdblock2' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
NTFS signature is missing.
Failed to mount '/dev/mtdblock2': Invalid argument
The device '/dev/mtdblock2' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
FUSE exfat 1.3.0
ERROR: exFAT file system is not found.
Benutzeravatar
jokel
Beiträge: 2390
Registriert: Mi 31. Mär 2021, 14:23
Box: ZGEMMA H7/C
Has thanked: 5 times
Been thanked: 5 times

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von jokel »

Code: Alles auswählen

mount -t jffs2 /dev/mtdblock2 /mnt
Benutzeravatar
annie
NI - Team
Beiträge: 1010
Registriert: Di 5. Apr 2016, 18:46
Wohnort: zuhause
Box: 1x E4HD, 4x HD51,1x VuUno4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von annie »

Funktioniert. Danke an Seife und Jokel für die Tipps
Bildschirmfoto vom 2022-03-16 10-13-02.png
Benutzeravatar
annie
NI - Team
Beiträge: 1010
Registriert: Di 5. Apr 2016, 18:46
Wohnort: zuhause
Box: 1x E4HD, 4x HD51,1x VuUno4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von annie »

Das geht aus Bank2 genauso für Bank1
Bildschirmfoto vom 2022-03-16 10-30-50.png
Benutzeravatar
Janus
NI - VIP
Beiträge: 1138
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von Janus »

Ich musste noch das Zielverzeichnis vor dem mount-Befehl per Script anlegen, danach funktionierte es aber.

Code: Alles auswählen

case $1 in
	start)
                ...
		if grep -q "root=mtd:root1" /proc/cmdline; then
			mkdir /mnt/Bank_0
			mount -t jffs2 /dev/mtdblock0 /mnt/Bank_0
		elif grep -q "root=mtd:root0" /proc/cmdline; then
			mkdir /mnt/Bank_1
			mount -t jffs2 /dev/mtdblock2 /mnt/Bank_1
		fi

		cd /
	;;
	stop)
		...
		umount /mnt/Bank_0
		umount /mnt/Bank_1
	;;
Ich habe das Ganze in mein zusätzliches Startscript in /var/etc/init.d/, also der gemeinsamen var-Partition, eingebaut. Damit hatte ich bisher nur meine externen Einzelscan-Verzeichnisse nach /mnt/settings/ gemountet.
Das wird bei jedem Start per rc.local automatisch aufgerufen.

Ich denke, das "Unmounten" der jeweils fehlenden Verbindung wird nicht tragisch sein.
Sonst muss ich das auch noch selektieren...

Danke an alle Beteiligten.
Ich liebe es, wenn ein Plan funktioniert!
Benutzeravatar
vanhofen
Administrator
Beiträge: 2924
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 2 times
Been thanked: 10 times

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von vanhofen »

Sehr cool. Danke euch. Dann versuche ich mal, das ins mdev-Script zu verbringen.
seife
Beiträge: 126
Registriert: Mi 20. Okt 2021, 15:20
Been thanked: 1 time

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von seife »

Evtl. das inaktive rootfs nur readonly mounten, damit sich nicht jemand aus versehen seine "rescuepartition" zerschießt?
Profis wie Janus, die wissen was sie tun, können es ja immer noch R/W remounten oder so...
Benutzeravatar
annie
NI - Team
Beiträge: 1010
Registriert: Di 5. Apr 2016, 18:46
Wohnort: zuhause
Box: 1x E4HD, 4x HD51,1x VuUno4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von annie »

Bei den Arm Boxen sind die Partitionen auch nicht readonly...
Benutzeravatar
jokel
Beiträge: 2390
Registriert: Mi 31. Mär 2021, 14:23
Box: ZGEMMA H7/C
Has thanked: 5 times
Been thanked: 5 times

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von jokel »

annie ja das stimmt,

Code: Alles auswählen

mount | grep '^/' | awk '{print "\n Partition : " $1  "\n Mountpoint: "  $3 "\n Parameter : " $6}'
ausgabe ist,

Code: Alles auswählen

[jokel ~]# mount | grep '^/' | awk '{print "\n Partition : " $1  "\n Mountpoint: "  $3 "\n Parameter : " $6}'

 Partition : /dev/mmcblk0p8
 Mountpoint: /
 Parameter : (rw,relatime,data=ordered)

 Partition : /dev/mmcblk0p3
 Mountpoint: /mnt/linuxrootfs1
 Parameter : (rw,relatime,data=ordered)

 Partition : /dev/mmcblk0p1
 Mountpoint: /boot
 Parameter : (rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

 Partition : /dev/sda1
 Mountpoint: /media/sda1
 Parameter : (rw,relatime,data=ordered)

 Partition : /dev/mmcblk0p8
 Mountpoint: /mnt/linuxrootfs3
 Parameter : (rw,relatime,data=ordered)

 Partition : /dev/mmcblk0p8
 Mountpoint: /mnt/linuxrootfs4
 Parameter : (rw,relatime,data=ordered)

 Partition : /var/etc/auto.net
 Mountpoint: /mnt/autofs
 Parameter : (rw,relatime,fd=6,pgrp=1699,timeout=300,minproto=5,maxproto=5,indirect)
[jokel ~]# 
könnte man aber mit -o remount,ro ändern :wink:
beispiel,

Code: Alles auswählen

mount -o remount,ro /mnt/linuxrootfs4
ausgabe,

Code: Alles auswählen

Partition : /dev/mmcblk0p8
Mountpoint: /mnt/linuxrootfs4
Parameter : (ro,relatime,data=ordered)
dies ist nur ein beispiel für remount. auf arm boxen sollten man dies nicht machen.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1138
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von Janus »

Bei den Arm Boxen sind die Partitionen auch nicht readonly...
Das angesprochene Gefahr könnte eventuell stärker sein, da viele zufriedene Tank-Nutzer zur Zeit noch keine Erfahrung mit den Multiboot-Boxen haben.

Andererseits ist die Wiederherstellung einer selbst 'abgeschossenen' Partition ein wichtiger Bestandteil persönlicher Fortbildung. So schwer ist es ja auch nicht und man denkt intensiver über "Sicherheitskopie" nach.
Geht beim Tank ja sehr selektiv!

Und ja - ich habe das auch auf diesem Weg (mit meiner HD51) 'gelernt'... :selfie:
Benutzeravatar
Knicko
NI - Team
Beiträge: 766
Registriert: Di 5. Apr 2016, 16:54
Box: Neo, Neo², Zee², AX-HD51, HD60
Has thanked: 4 times
Been thanked: 7 times

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von Knicko »

Immer diese Sicherheitskopien.. :grinning:

Solange du den Kernel nicht abschießt, bokommst du ja eine Partition normalerweise wieder gestartet.
Und kannst von da aus wieder die andere Partition flashen.
Was mich damals gestört hat, war das /var von beiden Images genutzt wurde.

Hatte auf root1 damals ein yocto laufen mit eigenem /var und dafür den kernel angepasst, damit beide Images liefen.
Und auch noch ab und an aus Spielerei von usb gestartet, um ein drittes Image zu verwenden.

Ich glaube aber, das das eh kaum einer nutzt. Das war damals als die Boxen noch aktuell waren, nur wenige, die damit rumgespielt haben.
gr. knicko
MAKE NEUTRINO GREAT AGAIN!
Benutzeravatar
Janus
NI - VIP
Beiträge: 1138
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von Janus »

Ich hatte damals ein Selbstbau-Image mit Bellums BS und dann probiert, ein NG in Bank 1 zu flashen.
Das ging dann auch nicht.
Habe danach nur noch unterschiedliche Entwicklungsstände (master <> mine) des gleichen BS benutzt.
Benutzeravatar
imi8mm
NI - VIP
Beiträge: 509
Registriert: Di 12. Apr 2016, 16:51
Wohnort: Hessen , Mbg.
Box: Trinity,Zee²,Neo²,D-Box2,2xAX51: UM
Has thanked: 3 times

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von imi8mm »

Hallo , vor den Multiboots auf der HD51 hatte ich den Root-Wechsel auf meiner Zee² benutzt ,
der Wechsel war allerdings nicht so einfach wie heute auf meiner HD51 ...
daher nur wenig genutzt ... :sunglasses:
Grüsse - imi8mm
CST Trinity V1 NI-Image 4.10 - Nightly > SPF-75h
CST Zee²Twin NI-Image 4.10 - Nightly
CST Neo²Twin NI-Image 4.10 - Nightly
2 x AX HD51 NI-Image 4.10 - Nightly + Keywelt + DDT + yocto 3.0.0 > SPF-75h/87h
UM-Fritzbox 6490---alles für Kabel/UM
Benutzeravatar
Knicko
NI - Team
Beiträge: 766
Registriert: Di 5. Apr 2016, 16:54
Box: Neo, Neo², Zee², AX-HD51, HD60
Has thanked: 4 times
Been thanked: 7 times

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von Knicko »

Janus
Grade aus dem Kopf heraus.
Der Kernel im NI ist ein 3.10.108 , wenn ich das noch richtig im Kopf habe.. Wird im Prinzip dann wieder umbenannt in 3.10.93.
Also werden auch alle Module für den NI Kernel auf 3.10.108 gebaut.
Ergo, wenn du Bellums BS nutzen willst, neben NI, muss Bellums auch mit NI Kernel gebaut werden.
Das habe ich aber nie ausprobiert.
Nur halt im yocto von Markus. Hab aber die Änderungen damals nicht ins git hochgeladen.
Wenn du da Interesse hast, muss ich nochmal nachschauen.
Macht ja für mich eigentlich nur dann Sinn, wenn man auch unterschiedliche Images nutzt, oder NI so baut, das du für jedes Image auch getrennt /var nutzen kannst.
Zumindest bin ich dieser Meinung.
gr. Knicko
MAKE NEUTRINO GREAT AGAIN!
Benutzeravatar
vanhofen
Administrator
Beiträge: 2924
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 2 times
Been thanked: 10 times

Re: Zugriff auf RootFS der unbenutzten Bank

Beitrag von vanhofen »

Das Init-Script ist bei den HD2 ab morgen mit im Image. Gemountet wird nach /mnt/root1 bzw. mnt/root0.
Antworten

Zurück zu „Apollo (TANK)“