Portál AbcLinuxu, 7. května 2025 05:31
/dev/root / ext4 defaults 1 1 proc /proc proc defaults 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 usbdevfs /proc/bus/usb usbdevfs noauto 0 0 tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0 tmpfs /var/volatile tmpfs defaults 0 0 tmpfs /tmp tmpfs defaults 0 0Upravil jsem na následující konfigurace, která nefunguje:
tmpfs / tmpfs defaults 1 1 tmpfs /upperdir tmpfs defaults 0 0 tmpfs /workdir tmpfs defaults 0 0 overlay / overlay defaults,lowerdir=/dev/root,upperdir=/upperdir,workdir=/workdir 0 0 proc /proc proc defaults 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 usbdevfs /proc/bus/usb usbdevfs noauto 0 0 tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0 tmpfs /var/volatile tmpfs defaults 0 0 tmpfs /tmp tmpfs defaults 0 0Po výpisu mount:
/dev/mmcblk1p1 on / type ext3 (rw,relatime,data=ordered) devtmpfs on /dev type devtmpfs (rw,relatime,size=347340k,nr_inodes=86835,mode=755) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd) bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/debug type cgroup (rw,nosuid,nodev,noexec,relatime,debug) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=3089) mqueue on /dev/mqueue type mqueue (rw,relatime) debugfs on /sys/kernel/debug type debugfs (rw,relatime) tmpfs on /upperdir type tmpfs (rw,relatime) tmpfs on /workdir type tmpfs (rw,relatime) tmpfs on /tmp type tmpfs (rw,relatime) tmpfs on /var/volatile type tmpfs (rw,relatime)Tudíž je patrné, že overlay tam vůbec není. Na jednom zařízení jsem viděl toto:
rootfs on / type rootfs (rw) /dev/root on /rom type squashfs (ro,relatime) proc on /proc type proc (rw,noatime) sysfs on /sys type sysfs (rw,noatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime) /dev/mtdblock5 on /overlay type jffs2 (rw,noatime) overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work) tmpfs on /dev type tmpfs (rw,relatime,size=512k,mode=755) devpts on /dev/pts type devpts (rw,relatime,mode=600) debugfs on /sys/kernel/debug type debugfs (rw,noatime) /dev/mtdblock7 on /mnt/mtdblock7 type jffs2 (rw,relatime)Ale nevím, jak se k tomu dostat. Máte s tím někdo zkušenosti? Díky za rady
/dev/root /ro ext4 defaults 1 1a overlay radek zmenit na:
overlay / overlay defaults,lowerdir=/ro,upperdir=/upperdir,workdir=/workdir 0 0ale v tmpfs pretim mountlem / nemas adresar /ro takze se to nepripoji, ten ro budes muset pripravit asi v initramfs, nebo mit nejakej dummy oddil kde budes mit to /ro pripravene a misto tmpfs na / pripojis ten oddil...
ale v tmpfs pretim mountlem / nemas adresar /ro takze se to nepripoji, ten ro budes muset pripravit asi v initramfs, nebo mit nejakej dummy oddil kde budes mit to /ro pripravene a misto tmpfs na / pripojis ten oddil... a dost mozna ani to nebude stacit, v praxi sem to takto na rootfs neoveroval...Ano, to nefunguje. initramfs - dobře, dejme tomu, že bych to připravil. Ale jak potom zakážu v systemd, aby se o mount nesnažil? A naopak přesvědčil systemd, aby zapnul initramfs.
v *buntu je na to koukam pripraven balicek, asi bych pro prostudoval (bejt tebou) pro inspiraciNa to jsem koukal, na Debianu není. Debian vše řeší přes systemd a ten já teď neumím přesvědčit, aby respektoval /etc/fstab![]()
pripadne inspiraci hledat v reseni pro Raspbian...Pokud bych to tak udělal, tak musím nahradit odkaz v /sbin/init ze systemd na tento skript. A ten skript ho na konci zase volá. Co by se stalo s již namountovaným diskem.... ?
tmpfs /tmp tmpfs defaults 0 1 tmpfs /var/tmp tmpfs defaults 0 1 tmpfs /var/lib/pulse tmpfs defaults 0 1 tmpfs /var/lib/NetworkManager tmpfs defaults 0 1Logování nastaveno jen do paměti a bylo potřeba poladit nějaké ty detaily okolo, jak se co některým službám nelíbilo.
root=/dev/mmcblk1p1 console=ttymxc0,115200 ro init=/sbin/init systemd.volatile=state loglevel=4
Jinak pro Debian na Raspberry používám tohle, podle mě by to mělo fungovat i jinde.Díky, vyzkouším odpoledne, napíšu. Stejná otázka jako výše - po provedení těchto změn se systemd nepokusí o mount? Koukám, že to je vyšší verze toho, co psali v diskuzu na odkazu od k3dAR.
# Install: # put this file in /etc/initramfs-tools/scripts/init-bottom/root-ro # chmod 0755 /etc/initramfs-tools/scripts/init-bottom/root-ro # add `overlay` to /etc/initramfs-tools/modules # mkinitramfs -o /boot/initrd # add `root-ro-driver=overlay` to the line in /boot/cmdline.txt # add the following to /boot/config.txt: # initramfs initrd followkernel # ramfsfile=initrd # ramfsaddr=-1vygeneroval /boot/initrd, s chybovou hláškou:
couldn't identify type of root file system for fsck hookTímto souborem jsem nahradil soubor /boot/uImage, odkud si u-boot bere obraz jádra (zdroják - řádek 214) Skončil jsem chybou, u-boot
U-Boot 2015.04-07916-g9cbc866 (Mar 27 2017 - 10:20:53) CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz CPU: Temperature 57 C Reset cause: WDOG Board: TS-7970 REV D/E I2C: ready DRAM: 1 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 SF: Detected N25Q64 with page size 256 Bytes, erase size 4 KiB, total 8 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial FPGA Rev: 7 SilabRev: 2 Net: using phy at 1 FEC [PRIME] Booting from the SD card ... 221 bytes read in 364 ms (0 Bytes/s) Booting from custom /boot/boot.ub ## Executing script at 12000000 ** File not found /boot/ts7970-fpga.vme ** 41770 bytes read in 340 ms (119.1 KiB/s) 5214840 bytes read in 587 ms (8.5 MiB/s) Wrong Image Format for bootm command ERROR: can't get kernel image!a teď
jak sem psal vyse, nahradit v cmdline ten init= takze se to nezacykli a systemd init a jeho sluzby uz nebude delat to same, a v fstab uz ne budes mit veci pro rootfs&overlay, takze systemd remount delat nebudeparametry jádra:
root=/dev/mmcblk1p1 console=ttymxc0,115200 ro init=/sbin/init systemd.volatile=state loglevel=4Soubor config.txt nemám, parametry jsou předávány přes ten u-boot. Pokud je tedy chci změnit, musím u-boot skript přegenerovat. Tudíž myslíte přidat ho před /sbin/init ?
mkinitramfs -o /boot/initrdSoučasný uImage:
Image Name: Linux-4.9.11-g648ccf65b7f1 Created: Wed Apr 15 12:21:06 2020 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4485600 Bytes = 4380.47 KiB = 4.28 MiB Load Address: 10008000 Entry Point: 10008000Následně vygeneruju ramdisk pro u-boot
mkimage -n "My_ramdisk" -A arm -O linux -T ramdisk -C none -a 10008000 -e 10008000 -d /boot/initrd uImageVygenerovaný image:
Image Name: My_ramdisk Created: Sun May 17 13:47:44 2020 Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size: 5214857 Bytes = 5092.63 KiB = 4.97 MiB Load Address: 10008000 Entry Point: 10008000Reboot Skončí to chybovou hláškou:
## Booting kernel from Legacy Image at 12000000 ... Image Name: My_ramdisk Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size: 5214857 Bytes = 5 MiB Load Address: 10008000 Entry Point: 10008000 Verifying Checksum ... OK Wrong Image Type for bootm command ERROR: can't get kernel image!
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.