Mounte ubifs image
Hej Gruppe
Jeg har et lille image som jeg gerne vil mounte - det består af 2 partioner /boot(p1) og /(p2)
Selve imaget størrelse er omkring 200MB som skal skrives til en 2GB SD-kort.
Jeg har dog nogle enkelte ændringer som jeg gerne ville have med inden de skal skrives til SDkortet - så hvordan kan jeg gøre dette korrekt!
Jeg ville gerne mounte / (p2) således jeg lige kan tilføje nogle ændringer! Selve image siger 195MB når det skrives men her 204
Hvorom alting er - Jeg kører en Ubuntu 14.04 - og har forsøgt med denne guide: https://github.com/victronenergy/venus/wiki/mounting-an-ubi-image - Men disse steps giver mig følgende fejl - så hvordan kan mounte gerne hele imaget(p1 & p2) eller kun p2
Når Imaget er brændt og startet op på den pågældende enhed - ser det således ud:
Jeg har småting og nogle scripts jeg gerne ville have lagt ind således det er med i Grundimaget det bliver til
Jeg har et lille image som jeg gerne vil mounte - det består af 2 partioner /boot(p1) og /(p2)
Selve imaget størrelse er omkring 200MB som skal skrives til en 2GB SD-kort.
Jeg har dog nogle enkelte ændringer som jeg gerne ville have med inden de skal skrives til SDkortet - så hvordan kan jeg gøre dette korrekt!
fdisk -l FW11v1.img
Disk FW11_v1.img: 204 MB, 204472320 bytes
255 heads, 63 sectors/track, 24 cylinders, total 399360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2d14a8dd
Device Boot Start End Blocks Id System
FW11_v1.img1 * 2048 133119 65536 c W95 FAT32 (LBA)
FW11_v1.img2 133120 399359 133120 83 Linux
Jeg ville gerne mounte / (p2) således jeg lige kan tilføje nogle ændringer! Selve image siger 195MB når det skrives men her 204
Hvorom alting er - Jeg kører en Ubuntu 14.04 - og har forsøgt med denne guide: https://github.com/victronenergy/venus/wiki/mounting-an-ubi-image - Men disse steps giver mig følgende fejl - så hvordan kan mounte gerne hele imaget(p1 & p2) eller kun p2
[ 96.276948] [nandsim] warning: read_byte: unexpected data output cycle, state is STATE_READY return 0x0
[ 96.276951] [nandsim] warning: read_byte: unexpected data output cycle, state is STATE_READY return 0x0
[ 96.276952] [nandsim] warning: read_byte: unexpected data output cycle, state is STATE_READY return 0x0
[ 96.276953] [nandsim] warning: read_byte: unexpected data output cycle, state is STATE_READY return 0x0
[ 96.276955] [nandsim] warning: write_byte: command (0x90) wasn't expected, expected state is STATE_READY, ignore previous states
[ 96.276956] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xac
[ 96.276958] nand: Micron NAND 512MiB 1,8V 8-bit
[ 96.276959] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[ 96.276978] flash size: 512 MiB
[ 96.276979] page size: 2048 bytes
[ 96.276980] OOB area size: 64 bytes
[ 96.276980] sector size: 128 KiB
[ 96.276981] pages number: 262144
[ 96.276982] pages per sector: 64
[ 96.276982] bus width: 8
[ 96.276983] bits in sector size: 17
[ 96.276983] bits in page size: 11
[ 96.276984] bits in OOB size: 6
[ 96.276985] flash size with OOB: 540672 KiB
[ 96.276985] page address bytes: 5
[ 96.276986] sector address bytes: 3
[ 96.276987] options: 0x8
[ 96.277801] Scanning device for bad blocks
[ 96.277804] [nandsim] warning: write_byte: command (0x0) wasn't expected, expected state is STATE_READY, ignore previous states
[ 96.286871] Creating 1 MTD partitions on "NAND 512MiB 1,8V 8-bit":
[ 96.286876] 0x000000000000-0x000020000000 : "NAND simulator partition 0"
[ 156.134181] ubi0: default fastmap pool size: 200
[ 156.134183] ubi0: default fastmap WL pool size: 100
[ 156.134184] ubi0: attaching mtd0
[ 156.140261] ubi0: scanning is finished
[ 156.140287] ubi0 error: ubi_read_volume_table: the layout volume was not found
[ 156.140415] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd0, error -22
[ 156.140431] UBI error: cannot attach mtd0
[ 156.140616] UBI error: cannot initialize UBI, error -22<4>[ 198.050691] ubifs: unknown parameter 'mtd' ignored
Når Imaget er brændt og startet op på den pågældende enhed - ser det således ud:
:~ mount
ubi0:rootfs0 on / type ubifs (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=122056k,nr_inodes=30514,mode=755)
none on /proc type proc (rw,relatime)
none on /tmp type tmpfs (rw,relatime)
none on /media type tmpfs (rw,relatime)
none on /sys type sysfs (rw,relatime)
none on /var/log type tmpfs (rw,relatime,size=4096k,mode=755)
none on /var/run type tmpfs (rw,relatime,mode=755)
none on /var/lock type tmpfs (rw,relatime,mode=755)
none on /var/tmp type tmpfs (rw,relatime)
cgroup on /sys/fs/cgroup type cgroup (rw,relatime,cpuacct,freezer)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
tmpfs on /run type tmpfs (rw,relatime,mode=755)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600,ptmxmode=000)
/dev/ubi0_2 on /home type ubifs (rw,sync,relatime)
/dev/ubi0_3 on /boot type ubifs (rw,sync,relatime)
Jeg har småting og nogle scripts jeg gerne ville have lagt ind således det er med i Grundimaget det bliver til
Kommentarer14
Selve imaget størrelse er
Selve imaget størrelse er omkring 200MB som skal skrives til en 2GB SD-kort.
Når du har gjort det, kører du
sudo fdisk -l
Hvad ser du?
Er der 2 partioner eller 2 img filer, på SD-kortet?
På Github skriver de:
modprobe ubi mtd=0
Måske skal du også tilføje
modprobe ubifs
Jeg ser der er 2 img
~ fdisk -l
Disk /dev/mmcblk0: 2056 MB, 2056257536 bytes
4 heads, 16 sectors/track, 62752 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 33 2080 65536 c Win95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary
/dev/mmcblk0p2 2081 6240 133120 83 Linux
Partition 2 does not end on cylinder boundary
modprobe ubi mtd=0 --> denne linje fejler
modprobe ubifs - fungerer men det er lidt det jeg har gjort og fejler med dette
Kan det FW11v1.img,
Det gør den også her-
modprobe ubi mtd
virker.
Kan det FW11v1.img, downloades af alle?
Du har sikkert prøvet bare at
mount /dev/mmcblk0p2 /mnt
Hej Igen.
Nej det er ikke
Nej det er ikke noget firmware der kan hentes - da det er meget kundespecifikt software.
Det er firmware til en WAGO PLC 8202.
Vi bygger et image fra deres egen VMware Ubuntru desktop maskine - dette ender i et *.img fil
Så længe jeg skriver til et SD kort - ser det meget fint ud - jeg ville bare gerne pakke imaget ud inden for lige at kunne tilføje lidt script mm - samt få md5sum ud af begge partityioner på SD-kortet
modprobe ubi mtd --> Virker ikke her
modprobe ubi mtd0 --> Virker
Men giver mig stadigvæk samme fejl i dmesg samt ingen mount
[ 172.459292] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xac
[ 172.459305] nand: Micron NAND 512MiB 1,8V 8-bit
[ 172.459321] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[ 172.459382] flash size: 512 MiB
[ 172.459392] page size: 2048 bytes
[ 172.459403] OOB area size: 64 bytes
[ 172.459413] sector size: 128 KiB
[ 172.459423] pages number: 262144
[ 172.459432] pages per sector: 64
[ 172.459435] bus width: 8
[ 172.459438] bits in sector size: 17
[ 172.459441] bits in page size: 11
[ 172.459444] bits in OOB size: 6
[ 172.459446] flash size with OOB: 540672 KiB
[ 172.459449] page address bytes: 5
[ 172.459452] sector address bytes: 3
[ 172.459455] options: 0x8
[ 172.493760] Scanning device for bad blocks
[ 172.493770] [nandsim] warning: write_byte: command (0x0) wasn't expected, expected state is STATE_READY, ignore previous states
[ 172.551948] Creating 1 MTD partitions on "NAND 512MiB 1,8V 8-bit":
[ 172.551960] 0x000000000000-0x000020000000 : "NAND simulator partition 0"
[ 263.981402] ubi: `' invalid for parameter `mtd'
[ 280.055815] ubi: unknown parameter 'mtd0' ignored
[ 298.743045] UBIFS error (pid: 2485): cannot open "/dev/ubi0_0", error -22
[ 308.281572] UBIFS error (pid: 2493): cannot open "/dev/ubi0_0", error -22
Jeg kan downloade et img til
https://www.wago.com/dk/plcs-controllers/pfc200-controller/p/750-8202
Derefter pakke img-et ud
7z x hd_V020523_08_r18658.img
Det giver 2 nye img filer:
ls -l
totalt 398336
-rw-r--r-- 1 root root 67108864 aug 25 2016 0.fat
-rw-r--r-- 1 root root 136314880 okt 15 10:19 1.img
Monter 1.img -
mount -o loop 1.img /mnt
busybox baseret system.
Kan du bruge samme opskrift?
#5 YES
Det kan jeg - det er
Det kan jeg - det er bare super - nu kan jeg pakke de extra ting ind i det
Hvordan skal det så pakkes sammen igen til et image ? Bare for at være sikker
Godt- alsåMonter 1.img
alså..................
Monter 1.img -
mount -o loop 1.img /mnt
cd /mnt
tilføj dine ændringer.
cd /
umount -a
1.img, bør nu indeholde dine ændringer.
Du kan evt montere den en gang mere, og se om ændringerne er der.
Jeg vil tro, at du kan pakke de 2 img filer sammen med
7z, til et samlet img, som den oprindelige fil.
Jeg har ikke prøvet, men se 7z -h, for hjælp.
Hej igen.
Nu har jeg leget
Nu har jeg leget en del med dette og det virker ikke som om det er den rigtige måde at gøre dette !
Jeg har originalt et image på 195MB
extracter det med kommandoen 7z x FW11.img -
Dette giver mig 2 partitioner:
0.fat
1.img
Jeg kan så mounte og tilføje mine ændringer og - så testede jeg med at pakke arkivet med 7z kommandoen
7z a testimage.img ./0.fat ./1.img
Dermed skrivewr den at den compresser og ender ud med en fil = testimage.img --> Men når jeg kigger på denne fylder dette image nu kun 35mb
Scanning
Creating archive /home/rbn/testimage.img
Compressing 1.img
Compressing 0.fat
Everything is Ok
ls-lah
-rw-r--r-- 1 root root 36M Oct 16 07:13 testimage.img
Brænding til SD kort
~ dd if=/mnt/firmware/testimage.img of=/dev/mmcblk0
72998+1 records in
72998+1 records out
37375008 bytes (35.6MB) copied, 30,498521 seconds, 1.2MB/s
Det originale image ser således ud ved brænding:
399360+0 records in
399360+0 records out
204472320 bytes (195.0MB) copied, 208,426343 seconds, 958.0KB/s
Så det jeg udpakker er 195mb og efter ændringerne fylder det kun 35mb
Udfra fdisk ser et originalt således ud:
Disk /dev/mmcblk0: 2056 MB, 2056257536 bytes
4 heads, 16 sectors/track, 62752 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 33 2080 65536 c Win95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary
/dev/mmcblk0p2 2081 6240 133120 83 Linux
Hvorimod SDkortet er helt tomt når jeg brænder mit testimage :-(
Prøvmount -o
mount -o loop,offset=68157440 FW11v1.img /mnt
cd /mnt
Lav rettelser
cd /
umount -a
Nu burde rettelserne, være i den oprindelige FW11v1.img fil.
Klar til at bruge.
Eksempel:
Mount dd image of and entire disk
https://blog.kintoandar.com/2010/02/how-to-disk-dump-dd.html
mount -o
Giver:
mount: you must specify the filesystem type
prøver jeg med -t ubi eller -t ubifs - fortæller den at
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Fortæller bare at den ikke kan finde et valid filesystem!
Hmmmmm - det er da ikke bare lige som jeg havde håbet
På mit Wago img, virker det
[root@localhost img]# fdisk -u -l hd_V020523_08_r18658.img
Disk hd_V020523_08_r18658.img: 195 MiB, 204472320 byte, 399360 sektorer
Enheder: sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Disketikettype: dos
Diskidentifikation: 0x00000000
Enhed Opstart Start Slut Sektorer Størrelse Id Type
hd_V020523_08_r18658.img1 * 2048 133119 131072 64M c W95 FAT32 (LBA)
hd_V020523_08_r18658.img2 133120 399359 266240 130M 83 Linux
[root@localhost img]# mount -o loop,offset=68157440 hd_V020523_08_r18658.img /mnt
[root@localhost img]#
Har du regnet offset ud, som her?
512 byte X start 133120
Doooh - det var jo der den
Mange tak for hjælpen med dette
Ha - godt det lykkedes, til
Nu vil jeg fodre Cherrytree med disse "guldkorn", så jeg kan finde dem hurtigt igen. Også brugbart på Raspberry Pi, img filer.
Cherrytree
https://www.giuspen.com/cherrytree/
er fantastisk.
Jamen det er skidelækkert
Jeg har nu efterhånden et færdigt script til mit setup med Wago PLC - inkl at fået det fodret med et update script - således at brugerne reelt set kun skal teste navn på scriptet - så mountes det mm
dog er det eneste der driller mig lidt det med at liste filerne i en case switch korrekt! https://www.linuxin.dk/node/22454
Så er det klart til at blive pakket sammen til en færdigt image
PS det ser nu ret fedt ud cherrytree