Odp: [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040
Zamontować dysk odpowiednio, żeby był dostępny dla wszystkich. Opisane w poradniku o montowaniu dysków.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040
Strony Poprzednia 1 2 3 4 5 6 … 38 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
Zamontować dysk odpowiednio, żeby był dostępny dla wszystkich. Opisane w poradniku o montowaniu dysków.
Zamontować dysk odpowiednio, żeby był dostępny dla wszystkich. Opisane w poradniku o montowaniu dysków.
Dzięki ponownie. Wszytko teraz hula.
Witam, jest to mój pierwszy post na tym forum.
Dzisiaj dostałem router TP-Link TL-MR3220.
Wrzuciłem na niego OpenWRT z interfejsem Gargoyle PL.
Następie zrobiłem exroota na karcie pamięci 2 GB MicroSD włożonej do czytnika.
Filesystem Size Used Available Use% Mounted on
/dev/root 2.5M 2.5M 0 100% /rom
tmpfs 14.4M 84.0K 14.4M 1% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sda1 1.8G 36.6M 1.7G 2% /overlay
mini_fo:/overlay 2.5M 2.5M 0 100% /logread
Dec 23 18:26:15 Gargoyle user.info kernel: USB Serial support registered for Sierra USB modem
Dec 23 18:26:15 Gargoyle user.info kernel: usbcore: registered new interface driver sierra
Dec 23 18:26:15 Gargoyle user.info kernel: sierra: v.1.3.8:USB Driver for Sierra Wireless USB modems
Dec 23 18:26:15 Gargoyle user.notice usb-modeswitch: 1-0:1.0: Manufacturer=Linux_2.6.32.27_ehci_hcd Product=Atheros_AR91xx_built-in_EHCI_controller Serial=ar71xx-ehci
Dec 23 18:26:15 Gargoyle user.info sysinit: WARNING: /lib/functions/fsck not found
Dec 23 18:26:15 Gargoyle user.notice usb-modeswitch: 1-1:1.0: Manufacturer=SanDisk Product=MobileMate_Micro Serial=000000016654
Dec 23 18:26:20 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:20 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:20 Gargoyle user.info sysinit: touch: /etc/crontabs/root: Input/output error
Dec 23 18:26:20 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:20 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:20 Gargoyle user.info sysinit: cat: can't open '/etc/crontabs/root': Input/output error
Dec 23 18:26:20 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:20 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:20 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:20 Gargoyle user.info sysinit: mv: cannot stat '/etc/crontabs/root': Input/output error
Dec 23 18:26:20 Gargoyle user.info sysinit: rm: cannot remove '/etc/rc.d/S50cron': Read-only file system
Dec 23 18:26:20 Gargoyle user.info sysinit: ln: /etc/rc.d/S50cron: File exists
Dec 23 18:26:22 Gargoyle user.info kernel: device wlan0 entered promiscuous mode
Dec 23 18:26:22 Gargoyle user.info kernel: br-lan: port 2(wlan0) entering forwarding state
Dec 23 18:26:25 Gargoyle user.info kernel: device wlan0 left promiscuous mode
Dec 23 18:26:25 Gargoyle user.info kernel: br-lan: port 2(wlan0) entering disabled state
Dec 23 18:26:25 Gargoyle user.info kernel: device wlan0 entered promiscuous mode
Dec 23 18:26:25 Gargoyle user.info kernel: br-lan: port 2(wlan0) entering forwarding state
Jan 1 01:00:45 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Jan 1 01:00:45 Gargoyle user.warn kernel: Remounting filesystem read-only
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Jan 1 01:00:45 Gargoyle user.info sysinit: touch: /etc/crontabs/root: Input/output error
Jan 1 01:00:45 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Jan 1 01:00:45 Gargoyle user.warn kernel: Remounting filesystem read-only
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Jan 1 01:00:45 Gargoyle user.info sysinit: cat: can't open '/etc/crontabs/root': Input/output error
Jan 1 01:00:45 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Jan 1 01:00:45 Gargoyle user.warn kernel: Remounting filesystem read-only
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Jan 1 01:00:45 Gargoyle user.info sysinit: md5sum: can't open '/etc/crontabs/root': Input/output error
Jan 1 01:00:45 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Jan 1 01:00:45 Gargoyle user.warn kernel: Remounting filesystem read-only
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Jan 1 01:00:45 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Jan 1 01:00:45 Gargoyle user.info sysinit: mv: cannot stat '/etc/crontabs/root': Input/output error
Jan 1 01:00:45 Gargoyle user.notice root: starting ntpclient
Dec 23 18:26:26 Gargoyle user.info sysinit: Loading defaults
Dec 23 18:26:27 Gargoyle user.info sysinit: Loading synflood protection
Dec 23 18:26:27 Gargoyle user.info sysinit: Adding custom chains
Dec 23 18:26:27 Gargoyle user.info sysinit: Loading zones
Dec 23 18:26:28 Gargoyle user.info sysinit: Loading forwardings
Dec 23 18:26:28 Gargoyle user.info sysinit: Loading redirects
Dec 23 18:26:28 Gargoyle user.info sysinit: Loading rules
Dec 23 18:26:28 Gargoyle user.info sysinit: Loading includes
Dec 23 18:26:29 Gargoyle user.info sysinit: md5sum: can't open '/tmp/l7marker.marks.tmp': No such file or directory
Dec 23 18:26:29 Gargoyle user.info sysinit: rm: cannot remove '/tmp/l7marker.marks.tmp': No such file or directory
Dec 23 18:26:29 Gargoyle user.info sysinit: Optimizing conntrack
Dec 23 18:26:29 Gargoyle user.info sysinit: Loading interfaces
Dec 23 18:26:29 Gargoyle user.info firewall: adding lan (br-lan) to zone lan
Dec 23 18:26:30 Gargoyle user.info firewall: adding wan (eth1) to zone wan
Dec 23 18:26:31 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:31 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:31 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:31 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:31 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:31 Gargoyle user.info sysinit: ls: /etc/crontabs/root: Input/output error
Dec 23 18:26:32 Gargoyle authpriv.info dropbear[1757]: Running in background
Dec 23 18:26:33 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:33 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:33 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:33 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:33 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:33 Gargoyle daemon.warn httpd_gargoyle[1815]: started as root without requesting chroot(), warning only
Dec 23 18:26:33 Gargoyle daemon.notice httpd_gargoyle[1815]: httpd_gargoyle/1.0 14mar2008 starting on Gargoyle, port 80
Dec 23 18:26:33 Gargoyle user.crit kernel: mini_fo_unlink: ERROR, invalid state detected.
Dec 23 18:26:33 Gargoyle user.notice dnsmasq: DNS rebinding protection is active, will discard upstream RFC1918 responses!
Dec 23 18:26:33 Gargoyle user.notice dnsmasq: Allowing 127.0.0.0/8 responses
Dec 23 18:26:34 Gargoyle user.warn kernel: ipt_bandwidth: timezone shift of 60 minutes detected, adjusting
Dec 23 18:26:34 Gargoyle user.warn kernel: old minutes west=0, new minutes west=-60
Dec 23 18:26:34 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:34 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:34 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:34 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:34 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:35 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:35 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:35 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:35 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:35 Gargoyle user.crit kernel: EXT2-fs error (device sda1): ext2_lookup: deleted inode referenced: 180238
Dec 23 18:26:35 Gargoyle user.warn kernel: Remounting filesystem read-only
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_lookup: ERR from storage dentry, lookup failed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_delete: negative dentry passed.
Dec 23 18:26:35 Gargoyle user.crit kernel: mini_fo_d_release: no private data.
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: started, version 2.55 cachesize 150
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: compile time options: IPv6 GNU-getopt no-DBus no-I18N DHCP TFTP
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCP, IP range 172.16.0.100 -- 172.16.0.200, lease time 12h
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: using local addresses only for domain lan
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: reading /tmp/resolv.conf.auto
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: using nameserver 91.218.60.19#53
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: using nameserver 91.218.60.18#53
Dec 23 18:26:37 Gargoyle daemon.warn dnsmasq[2203]: ignoring nameserver 172.16.0.1 - local interface
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: using local addresses only for domain lan
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq[2203]: read /etc/hosts - 2 addresses
Dec 23 18:26:37 Gargoyle daemon.info dnsmasq-dhcp[2203]: read /etc/ethers - 0 addresses
Dec 23 18:26:37 Gargoyle user.info sysinit: ERROR: No valid dynamic DNS service configurations defined
Dec 23 18:26:37 Gargoyle user.info sysinit: (Did you specify correct configuration file path?)
Dec 23 18:26:38 Gargoyle daemon.info hostapd: wlan0: STA f4:ec:38:8a:4c:ae IEEE 802.11: authenticated
Dec 23 18:26:38 Gargoyle daemon.info hostapd: wlan0: STA f4:ec:38:8a:4c:ae IEEE 802.11: associated (aid 1)
Dec 23 18:26:38 Gargoyle daemon.info hostapd: wlan0: STA f4:ec:38:8a:4c:ae WPA: pairwise key handshake completed (RSN)
Dec 23 18:26:38 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCPREQUEST(br-lan) 172.16.0.155 f4:ec:38:8a:4c:ae
Dec 23 18:26:38 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCPACK(br-lan) 172.16.0.155 f4:ec:38:8a:4c:ae Kris-Komputer
Dec 23 18:26:39 Gargoyle user.debug kernel: ar71xx-wdt: enabling watchdog timer
Dec 23 18:26:42 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCPREQUEST(br-lan) 172.16.0.155 f4:ec:38:8a:4c:ae
Dec 23 18:26:42 Gargoyle daemon.info dnsmasq-dhcp[2203]: DHCPACK(br-lan) 172.16.0.155 f4:ec:38:8a:4c:ae Kris-Komputer
Dec 23 18:29:35 Gargoyle authpriv.info dropbear[2257]: Child connection from 172.16.0.155:60671
Dec 23 18:29:43 Gargoyle authpriv.notice dropbear[2257]: Password auth succeeded for 'root' from 172.16.0.155:60671
Dec 23 18:36:23 Gargoyle daemon.info hostapd: wlan0: STA f4:ec:38:8a:4c:ae WPA: group key handshake completed (RSN)Mam jednak problem z zainstalowaniem jakiegokolwiek pakietu - dla przykładu Transmission:
root@Gargoyle:~$ opkg update
Downloading http://ecco.selfip.net/backfire/ar71xx/packages/Packages.gz.
Inflating http://ecco.selfip.net/backfire/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/eko1.
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/Packages.gz.
Inflating http://downloads.openwrt.org/backfire/10.03.1-rc6/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/packages.
root@Gargoyle:~$ opkg install transmission-daemon transmission-web
Installing transmission-daemon (2.42-2cj) to root...
Downloading http://ecco.selfip.net/backfire/ar71xx/packages/transmission-daemon_2.42-2cj_ar71xx.ipk.
Multiple packages (libpthread and libpthread) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (libpthread and libpthread) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Multiple packages (librt and librt) providing same name marked HOLD or PREFER. Using latest.
Installing libcurl (7.21.7-1) to root...
Downloading http://ecco.selfip.net/backfire/ar71xx/packages/libcurl_7.21.7-1_ar71xx.ipk.I od tej chwili mogę czekać w nieskończoność a i tak nic się nie stanie.
Tak z każdym pakietem.
Żeby spróbować ponownej instalacji muszę zrestartować router bo w innym przypadku dostaję komunikat:
opkg update
Collected errors:
* opkg_conf_load: Could not lock /var/lock/opkg.lock: Resource temporarily unavailable.Ktoś wie co jest grane i jak to "naprawić"?
Chyba są to jakieś problemy z kartą pamięci?
Za odpowiedź z góry dziękuję
Tak. Extroota zrobiłeś, ale masz błędy w systemie plików (zobacz błędy mini_fo w logu). Zacznij od fsck systemu plików po odłączeniu.
Rzadko ale się zdarza że dany pendrive ma problemy z usb i nie chce działać extroot - bo cały czas robi błędy w systemie plików.
Dziękuję za szybką odpowiedź.
Zrobione - teraz instalacja działa.
Mam jeszcze pytanie co do uruchomienia Transmission (chociaż nie wiem czy to odpowiedni dział)
deamon - moduł web są zainstalowane, polecenie ps wyświetla:
root@Gargoyle:~$ ps
PID USER VSZ STAT COMMAND
1 root 1348 S init
2 root 0 SW [kthreadd]
3 root 0 SW [ksoftirqd/0]
4 root 0 SW [events/0]
5 root 0 SW [khelper]
8 root 0 SW [async/mgr]
39 root 0 SW [sync_supers]
41 root 0 SW [bdi-default]
43 root 0 SW [kblockd/0]
71 root 0 SW [kswapd0]
72 root 0 SW [aio/0]
73 root 0 SW [crypto/0]
85 root 0 SW [mtdblockd]
88 root 0 SW [ar71xx-spi]
231 root 0 SW [ipolldevd]
306 root 0 SW [khubd]
313 root 0 SW [scsi_eh_0]
314 root 0 SW [usb-storage]
363 root 1348 S init
377 root 1352 S syslogd -C16
379 root 1336 S klogd
392 root 784 S /sbin/hotplug2 --override --persistent --set-worker /
467 root 0 SW [flush-8:0]
607 root 0 SW [events_nrt]
645 root 0 SW [cfg80211]
746 root 0 SW [phy0]
1262 root 1472 S hostapd -P /var/run/wifi-phy0.pid -B /var/run/hostapd
1359 root 764 S /usr/sbin/ntpclient -i 43200 -s -l -D -p 123 -h 0.pl.
1739 root 1132 S /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
1770 root 1344 S httpd_gargoyle -c cgi-bin/**|**.sh|**.cgi|**.csv -d /
2170 root 1344 S crond -c /etc/crontabs -l 5
2180 root 1352 S udhcpc -t 0 -i eth1 -b -p /var/run/dhcp-eth1.pid -O r
2190 nobody 912 S /usr/sbin/dnsmasq -K -D -y -Z -b -E -s lan -S /lan/ -
2213 root 1344 S watchdog -t 5 /dev/watchdog
2443 root 3928 S /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
2444 root 3928 S /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
2445 root 3928 S /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
2446 root 3928 S /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
2451 root 3928 S /usr/bin/transmission-daemon -g /mnt/sda1/torrenty/ko
2480 root 1204 S /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
2481 root 1352 S -ash
2487 root 1340 R ps
Po wprowadzaniu w pasku adresu IP oraz numeru portu 9091 (od strony LAN'u) dostaję komunikat:
403: Forbidden
Unauthorized IP Address.
Either disable the IP address whitelist or add your address to it.
If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.
If you're still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.
Może mnie ktoś nakierować jak mam odpalić interfejs web?
@edit
Eh, głupie pytanie...
Ponownie dziękuję
Dokładnie to napisał: albo przestaw na false opcję rpc-whitelist-enabled albo dodaj swoją klasę adresową do rpc-whitelist
(w /etc/config/transmission)
Witajcie! Wesołych Świąt!
A teraz pytania. Właśnie wgrałem ten firmware, stowrzyłem rootfs i ładnie działa, lecz brak e2fsck trochę mnie smuci. W razie kłopotów trzeba samemu skłądać wszystko do kupy i sobie pomyślałem tak:
Wgrałem firmware od nowa, lecz zamiast od razu robić rootfs, ja sobie założyłem na pendrivie dwie partycje, w zasadzie trzy bo trzecia to swap. I teraz pierwsza jest niewielka, ma 5 MB (1 by wystarczyło) i ona podłącza mi się tylko do odczytu w trybie, gdy nie ma jeszcze rootfs. Umieściłem na niej cały pakiet e2fsprogs, wgrany do /tmp (ram) i skopiowany do właściwego katalogu. Katalog nazywa się rbin (red bin) i odpowiednie linki symboliczne wskazują właśnie do tego katalogu, a nie do tmp. Partycja podmontowuje się z fstab mount(0) pod /rbin właśnie. Po odpaleniu wszystkiego od razu wszystkie te programy widoczne są z palca, więc e2fsck jest widoczny już od zamontowania tej partycji!
Następnie zrobiłem resztę, czyli moje /dev/sda2 które jest już właściwą partycją rootfs, dodałem do fstab odpowiednie mount(1) i ustawiłem w nim sprawdzanie e2fsck w razie błędów. Aha, odpowiednie linki symboliczne wskazują mi także na programy z /rbin! Więc nie potrzeba podawać całych ścieżek, wystarczą nazwy programów.
Pierwsza partycja wogle mi się nie montuje po uruchomieniu rootfs, lecz przed montuje się jako /rbin w trybie tylko do odczytu. Plan jest taki, że w razie czego jak coś nawali z /dev/sda2 to system automatycznie mi zreperuje system plików z /dev/sda1 podlinkowanym wcześniej pod /rbin, naprawi co ma naprawić i następnie system zamontuje mi rootfs i uruchomi wszystko jak trzeba.
Moje pytanie brzmi, czy rzeczywiście to zadziała? W jakiej kolejności są montowane i sprawdzane systemy plików? Czy najpierw jest wszystko sprawdzane, a dopiero później montowane, czy robione jest to oddzielnie do każdej partycji, to znaczy, że montowana jest moja /dev/sda1, potem próba /dev/sda2 i w razie niepowodzenia naprawa i ponowna próba zamontowania.
Dzięki za odpowiedzi. Może przy okazji komuś się to przyda, pozdrawiam, Tao.
Tak się nie da. Pierwsze co jest montowane to właśnie extroot, fstab jest przerabiany odpowiednio później. Wiec w momencie montowania extroota nie masz jeszcze zamontowanej tamtej dodatkowej partycji (chyba że sam sobie skrypt zmodyfikujesz).
Na własne potrzeby zrobiłem sobie e2fsck statyczny, ale i tak ma 500k, więc do flash się nie zmieści. ale przynajmniej jeden plik do ściągania jest.
Właśnie przeglądam te pliki i nie ogarniam jeszcze wszystkiego, może łatwiej byłoby dodać kawałek skryptu który by montował wcześniej...
No dobra, może inaczej, a jak już zrobiłem to wszystko i teraz zrestartuję router, wyjmę pendrive'a, odpali mi się standardowa konfiguracja i usunę coś niepotrzebnego i zainstaluję pakiet z e2fsck.... Będzie okrojone, ale co tam, przecież jak odpali mi się to z rootfs, to wszystko będzie jak należy, prawda?
Nie usuniesz bo tam nie "nic niepotrzebnego". Ponad to usunięcie nie zwolni miejsca.
No właśnie doszedłem do tego, no i zrobiłem, dodałem dodatkowy plik do /etc/init.d z wysokim numerkiem by uruchamiało się możliwie na końcu, skrypt próbuje zreperować problematyczną partycję, jak się nie uda nie robi dalej nic, a jak się uda to rebotuje urządzenie, po rebocie urządzenie startuje juz z naprawionej partycji rootfs i dalej działa jak zwykle. To w teorii, bo w praktyce przy pierwszym błędzie się zobaczy. :-)
Takie rozwiązanie nie wymaga edycji tego co już jest, wystarczy wrzucić króciutki dodatkowy plik. I wszystko robi się automatycznie! Pozdrawiam. :-)
Siemka @ll
Przykleje sie do tego wątku żeby nie tworzyć nowego odnośnie 3220 , CeZary jest mozliwośc zebyś skroił tak firmware żeby była paczka z ftp i vfat bez modemów3g exroot-a i co można jeszcze okroić, ten moj tplink ma robić jako routerek adsl z pppoe ,wifi, ssh , ddns, gui i lekkim serwerekiem ftp na który kamerki IP mają zrzucać zdjęcia . ewentualnei dla tego ftp mogę zrezygnowac z ssh ?? mam 2 takie tplinki i szkoda żeby leżały
z góry thx za info .
ps
nie chcę robić extroota gdyż jak wyżej miałem problemy z rozruchem po zaniku prądy
Owszem mogę. Ale nie buduję wszystkich możliwych kombinacji, więc takie życzenia - patrz: http://eko.one.pl/forum/viewtopic.php?id=263
juz pisze na @
Tompij@o2.pl, pomyśl o akumulatorze i niewielkim układzie elektrycznym do tego i będziesz miał podtrzymywanie podczas takich awarii jak brak prądu.
Swoją drogą uważam swoje rozwiązanie za dużo lepsze od ręcznego ściągania narzędzia tylko po to, by postawić padnięty system plików na nogi. Można by nawet dodać to jako standardardowe rozwiązanie w takich sytuacjach, wtedy nie trzeba by tworzyć oddzielnej konfiguracji na tę niewielką partycję montowaną tylko do odczytu i widziałbym to jako dodatkową opcję w fstab, coś w stylu recoveryfsck = 1...
Cezary, jak to widzisz?
Gdybym to napisał, podłączyłbyś to jako opcję?
Napisz zobaczymy jak to wyszło.
Proszę bardzo, oto zawartość łatki:
diff -u --recursive lib_stary/functions/block.sh lib/functions/block.sh
--- lib_stary/functions/block.sh 2011-12-29 16:50:00.000000000 +0100
+++ lib/functions/block.sh 2011-12-29 14:20:00.000000000 +0100
@@ -72,6 +72,7 @@
local gm_uuid
local gm_label
local gm_is_rootfs
+ local gm_device_fsck
config_get gm_target "$1" target
config_get gm_device "$1" device
config_get gm_fstype "$1" fstype 'auto'
@@ -81,7 +82,8 @@
config_get gm_uuid "$1" uuid
config_get gm_label "$1" label
config_get_bool gm_is_rootfs "$1" is_rootfs 0
- mount_cb "$gm_cfg" "$gm_param" "$gm_target" "$gm_device" "$gm_fstype" "$gm_options" "$gm_enabled" "$gm_enabled_fsck" "$gm_uuid" "$gm_label" "$gm_is_rootfs"
+ config_get gm_device_fsck "$1" device_fsck
+ mount_cb "$gm_cfg" "$gm_param" "$gm_target" "$gm_device" "$gm_fstype" "$gm_options" "$gm_enabled" "$gm_enabled_fsck" "$gm_uuid" "$gm_label" "$gm_is_rootfs" "$gm_device_fsck"
}
config_get_swap() {
diff -u --recursive lib_stary/functions/mount.sh lib/functions/mount.sh
--- lib_stary/functions/mount.sh 2011-12-29 16:51:00.000000000 +0100
+++ lib/functions/mount.sh 2011-12-29 16:22:00.000000000 +0100
@@ -27,6 +27,7 @@
shift
local is_rootfs="$9"
local device_fsck="$10"
+ local device_fsck_mount=""
shift
local found_device=""
@@ -35,7 +36,19 @@
if [ -z "$find_rootfs" ] || [ "$find_rootfs" -eq 0 ] || [ "$is_rootfs" -eq 1 ]; then
[ "$enabled_fsck" -eq 1 ] && {
grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
+
+ [ -n "$device_fsck" ] && [ "$is_rootfs" -eq 1 ] && {
+ grep -q "$device_fsck" /proc/swaps || grep -q "$device_fsck" /proc/mounts || {
+ mount -r "$device_fsck" /red_bin
+ device_fsck_mount="1"
+ }
+ }
libmount_fsck "$found_device" "$fstype" "$enabled_fsck"
+ [ -n "$device_fsck_mount" ] && grep -q "$device_fsck" /proc/mounts && {
+ umount "$device_fsck"
+ device_fsck_mount=""
+ }
+
}
}Do tego dodatkowy skrypt /sbin/init_device_fsck:
#!/bin/sh
[ -z "$1" ] && {
echo "Skrypt automatycznie zainicjuje dodatkowa niewielka partycje"
echo "z programem e2fsck. Dodatkowo skonfiguruje fstab w taki sposb:"
echo "a) wylaczy anonimowe montowanie partycji,"
echo "b) ustawi pierwsza partycje jako rootfs"
echo "c) ustawi informacje o dodatkowej partycji z e2fsck"
echo
echo "Przygotuj swojego pendrive tak, by mial przynajmniej dwie partycje"
echo "sformatowane jako ext2, jedna z nich niewielkiej wielkosci ~2MB bedzie"
echo "wykorzystywana do przeprowadzania ewentualnych napraw tej drugiej,"
echo "na ktorej bedzie caly rootfs. Partycja bedzie montowana w trybie"
echo "tylko do odczytu. Reszte konfiguracji rootfs musisz ustawic sam."
echo
echo "W celu wykonania zadania wykonaj: $0 <partycja_e2fsck> <partycja_rootfs>"
echo "Przyklad: $0 /dev/sda1 /dev/sda2"
echo
echo "Pamietaj, skrypt uruchomiony moze zostac tylko jeden raz!"
return 0
}
echo "1. Tworze katalog pod ktory bedzie montowana nasza partycja"
mkdir -p /red_bin
echo "2. Montuje nasza partycje w trybie do zapisu"
# czyszcze zawartosc jesli cos tu jest
mount -o rw "$1" /red_bin
[ -d "/red_bin/lib" ] && {
rm -rf /red_bin/lib
}
[ -d "/red_bin/usr" ] && {
rm -rf /red/bin/usr
}
echo "3. Sciagam i instaluje w ramie potrzebny pakiet"
opkg update
opkg install -d ram e2fsprogs
echo "4. Kopiuje wszystko na nasza przygotowana partycje"
cp -r /tmp/usr /red_bin/
cp -r /tmp/lib /red_bin/
ln -s /red_bin/usr/lib/lib* /usr/lib/
ln -s /red_bin/lib/lib* /lib/
ln -s /red_bin/usr/sbin/e2fsck /usr/sbin/
ln -s /red_bin/usr/sbin/mke2fs /usr/sbin/
ln -s /red_bin/usr/sbin/mkfs.ext2 /usr/sbin/
echo "5. Odmontowuje nasza partycje"
umount "$1"
echo "6. Ustawiam wazniejsze opcje w fstab"
###### nie ma potrzeby montowania innych niz wskazana rootfs!
uci set fstab.automount.anon_mount=0
###### opcja target i device nie sa potrzebne, wiec je usuwam
uci delete fstab.@mount[0].target
uci delete fstab.@mount[0].device
uci set fstab.@mount[0].enabled_fsck=1
uci set fstab.@mount[0].is_rootfs=1
uci set fstab.@mount[0].device_fsck="$1"
uci set fstab.@mount[0].enabled=1
uci set fstab.@mount[0].uuid=`blkid|grep "$2"|cut -d\" -f2`
uci commit
echo "7. Usuwam plik blokujacy extroot.md5sum i reboot..."
mount "$2" /red_bin
rm /red_bin/etc/extroot.md5sum
umount "$2"
rebootktóry wprowadza odpowiednie zmiany, bez zabezpieczeń, więc trzeba przed tem się postarać o to, by odpowiednia partycja nie była już zamontowana itd. Skrypt chcę rozbudować jeszcze o podanie drugiego device rootfs, skrypt wtedy odczyta uuid tego urządzenia i automatycznie wypełni wszystko w naszym fstabie! Tak wiec wystarczy tylko wydac komende init... device2M deviceROOTFS i gotowe ![]()
Tylko że poprawki na oba pliki muszą być naniesione, a plik init... tez musi być już wgrany.
Jeśli Cię to interesuje to obejrzyj to i podziel się swoimi wnioskami. Jestem dostępny na jabberze, jak by co, wysłałem już prośbę o autoryzację. Wg mnie wielu ludzi by skorzystało.
Łatka została poprawiona, był błąd, zaś skrypt został zmodyfikowany, teraz wszystko konfigurowane jest z automatu.
Nie dostałem na jabbera jeszcze żadnej autoryzacji.
To modyfikowanie fstaba średnio mi się podoba.
Znalazłem też inny sposób: busybox zawiera starą (bo z 2005) implementację e2fsck która domyślnie nie jest kompilowana. Stara jest i nie kompiluje się z busyboxem, zmieniłem więc kody i zrobiłem e2fsck busyboxowe. Niestety, zwiększyło to rozmiar busyboxa o ok 150KB, ale mimo to po kompresji obrazu nadal się mieści wszystko choć zostaje bardzo mało miejsca na jffs.
Sam fsck działa (przejechałem sobie dysk z 60GB danymi dla sprawdzenia ;/), choć nie wiem czy taka stara implementacja nie ma czegoś złego w sobie. Jak ktoś chce testować: http://ecco.selfip.net/test/
PS. Zamiast określać device w konfiguracji - nie lepiej by było, gdyby szukał sam np. partycji o LABEL=e2fsck?
ext2 się raczej nie zmienia i nie zmieni, więc myślę, że to będzie działać dobrze. Potrzebne tylko dla tych co i tak wszystko odpalaja na extroocie, więc co za różnica, że mniej zostaje na jffs, skoro i tak wszystko docelowo jest zapisywane na extroocie. Dzięki!
Nie chodzi o zmianę w ext2 a w samym narzędziu. Bo raczej przez 6 lat w nim coś błędnego na pewno się znalazło
, inaczej by e2fsprogs wersji nie zmieniało.
Kwestia udogodnień takich jak ext3 i ext4. Świat przecież nie stoi w miejscu, a samo ext2 raczej się już nie zmienia i wydaje mi się, że kod także. A skoro te nowości i tak są wycięte z tej wersji, więc chyba nie ma problemu.
Przerobiłem właśnie swój inicjujący skrypt, podaję w nim dwa parametry: urządzenie_fsck i urządzenie_rootfs. Plik sam konfiguruje resztę, uruchamia blkid, odczytuje uuid, montuje rootfs, usuwa z niego plik /etc/rootfs.md5sum i rebotuje urządzenie. Po restarcie działa już na extroocie. Init wykonuje się w ciągu jednej chwili.
Pozostaje mi go tylko jeszcze dopieścić teraz pod względem różnych zabezpieczeń, obsługi błędów itd.
Cezary, jeśli Cię to nadal interesuje to przerobię go tak, by nie zmieniać fstaba, można zrobić tak, by montował partycję LABEL=e2fsck, ale potrzeba by do tego dodać jeszcze jakieś zabezpieczenie, by fstab nigdy nie ładował tej partycji do /mnt w trybie guest. Ona nie może być normalnie ładowana w trybie rw! To chyba zrozumiałe.
Sztucznie możesz zrobić, ze jeżeli będzie miała taki label to ma się nie montować.
Chmm, no wszystko jest fajnie, tylko... Jak odczytać LABEL dysku/partycji pod OpenWRT?
A może zapisywać informację o DEVICE gdzieś poza fstab? Np. w jakimś pliku tekstowych w /etc? Np: /etc/partition_e2fsck?
Strony Poprzednia 1 2 3 4 5 6 … 38 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → [howto] Extroot dla Gargoyle na TL-MR3420/MR3220/MR3020/MR3040
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc