1

Temat: Proces bootowania openwrt

Witam.
Nie mogę połapać się w procesie bootowania routera.
Cel: dopisanie z ręki na sztywno e2fsck -p /dev/sda1 przed zamontowaniem extroot

Zajrzałem tu: http://wiki.openwrt.org/doc/techref/process.boot
najważniejsze wydaję się to : S10boot     starts hotplug-script, mounts filesystesm, starts .., starts syslogd, …

zaznaczyłem parę punktów startu systemu poprzez
logger -t wadmar "opis"

np. dla /etc/init.d/boot

start() {
        [ -f /proc/mounts ] || /sbin/mount_root
        [ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc
        [ -f /proc/net/vlan/config ] && vconfig set_name_type DEV_PLUS_VID_NO_PAD

        apply_uci_config
        config_load system
        config_foreach system_config system

logger -t wadmar "s10boot, funkcja start"
        mkdir -p /var/run
        mkdir -p /var/log
        mkdir -p /var/lock
        mkdir -p /var/state
        mkdir -p /tmp/.uci
        chmod 0700 /tmp/.uci
        touch /var/log/wtmp
        touch /var/log/lastlog
        touch /tmp/resolv.conf.auto
        ln -sf /tmp/resolv.conf.auto /tmp/resolv.conf
logger -t wadmar "s10boot, funkcja start-przed  funkcja mount ..."
        grep -q debugfs /proc/filesystems && mount -t debugfs debugfs /sys/kernel/debug
        [ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe

Zliczam restarty routera i zapisuję informację do plików.
ostatni:

root@Gargoyle:~$ cat logread.6
Thu Jun 7 10:07:55 CEST 2012
47:Jan  1 01:00:34 Gargoyle user.notice wadmar: s10boot, funkcja start
142:Jan  1 01:00:34 Gargoyle user.notice wadmar: s10boot, funkcja start-przed  funkcja mount ...
143:Jan  1 01:00:34 Gargoyle user.notice wadmar: s10boot, funkcja start-przed  coldplugging of network interfaces
147:Jan  1 01:00:36 Gargoyle user.notice wadmar: s10boot, funkcja start-przed  create /dev/root
148:Jan  1 01:00:36 Gargoyle user.notice wadmar: s10boot, funkcja start-przed zaladowaniem /etc/modules.d
243:Jan  1 01:00:53 Gargoyle user.notice wadmar: s10boot, funkcja start-po zaladowaniu /etc/modules.d
244:Jan  1 01:00:53 Gargoyle user.notice wadmar: s10booti, funkcja start-koniec
246:Jan  1 01:00:54 Gargoyle user.notice wadmar: set_kernel_timezone, funkcja start
247:Jan  1 01:00:54 Gargoyle user.notice wadmar: init.d/usb - sam początek skryptu
282:Jun  7 10:07:41 Gargoyle user.notice wadmar: usb_storage początek skryptu
283:Jun  7 10:07:41 Gargoyle user.notice wadmar: usb_storage funkcja do_start
390:Jun  7 10:07:54 Gargoyle user.notice wadmar: uruchomiony plik /etc/rc.local
391:Jun  7 10:07:55 Gargoyle user.notice wadmar: Liczba restert..w routera to: 6
137:Jan  1 01:00:34 Gargoyle user.warn kernel: EXT4-fs (sda1): warning: mounting unchecked fs, running e2fsck is recommended
138:Jan  1 01:00:34 Gargoyle user.info kernel: EXT4-fs (sda1): mounted filesystem without journal
/dev/sda1 on /overlay type ext4 (rw,noatime,barrier=1,data=writeback)
/dev/sda1                 7.2G     22.3M      7.2G   0% /overlay

Jak widać moontowanie sda1 z nr. 137 i 138.
Proszę zwrócić uwagę na nr 47 i potem jest od razu 142 (czyli już po zamontowaniu), między tymi dwoma "znacznikami" w pliku /etc/init.d/boot jest kilka prostych poleceń (spójrz wyżej w poście między  logger ...).

Wydaję mi się, że postępuję logicznie i nie widzę gdzie tkwi mój błąd w rozumowaniu. Wydawało mi się, że oprócz preinit nie ma wielkich różnic co do np. debiana, jeśli chodzi o proces bootowania systemu.

Może ktoś z czytelników zajmował się tym tematem i jest wstanie wytknąć mi błąd lub podać jakąś wskazówkę.

NETGEAR WNDR4300

2

Odp: Proces bootowania openwrt

Po co ten fsck chcesz zrobić? ustaw opcję w fstabie to samo się będzie robiło przy starcie.

Różnica jest, bo inaczej te skrypty wyglądają: boot się uruchamia,  wykonanie poszczególnych plików z preinit a później reszta z init.d

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Proces bootowania openwrt

Cezary napisał/a:

Po co ten fsck chcesz zrobić? ustaw opcję w fstabie to samo się będzie robiło przy starcie.

Oczywiście mam pozaznaczane i ustawione. Ale nie działa.
root@Gargoyle:~$ grep fsck /etc/config/fstab
        option 'enabled_fsck' '1'


root@Gargoyle:~$ uci show fstab
fstab.automount=global
fstab.automount.from_fstab=1
fstab.automount.anon_mount=1
fstab.autoswap=global
fstab.autoswap.from_fstab=1
fstab.autoswap.anon_swap=0
fstab.@mount[0]=mount
fstab.@mount[0].device=/dev/sda1
fstab.@mount[0].fstype=ext4
fstab.@mount[0].options=rw,noatime
fstab.@mount[0].enabled_fsck=1
fstab.@mount[0].is_rootfs=1
fstab.@mount[0].enabled=1
fstab.@swap[0]=swap
fstab.@swap[0].device=/dev/sda2
fstab.@swap[0].enabled=1

Cezary napisał/a:

Różnica jest, bo inaczej te skrypty wyglądają: boot się uruchamia,  wykonanie poszczególnych plików z preinit a później reszta z init.d

To widzę. Natomiast ten fregment który opisałem wyżej w temacie nie umiem wyjaśnić. I jeszcze fakt, że co któreś uruchomienie jest inny log (logread) (a jest tylko komenda reboot i korzystanie z Inetu z jednej maszyny przez eth)

NETGEAR WNDR4300

4

Odp: Proces bootowania openwrt

O ile masz e2fsprogs zainstalowane to musi działać. Działa każdemu i zawsze, zakładasz że ktoś spisek przeciwko Tobie zrobił? smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez namado 2012-06-07 11:36:02)

Odp: Proces bootowania openwrt

Cezary napisał/a:

O ile masz e2fsprogs zainstalowane to musi działać. Działa każdemu i zawsze, zakładasz że ktoś spisek przeciwko Tobie zrobił? smile

hehe, dobre smile
Linuksa uwielbiam bo na każdym etapie jego działania mogę zmienić co chcę smile

w/g mnie nie działa
1. Cisza w logach na ten temat.
2. i drażni mnie, że nie mogę sobie komunikatu dorzuć, tak panie marku przeskanowałem smile, albo zanotować na ile rebootów skan naprawił system.

NETGEAR WNDR4300

6

Odp: Proces bootowania openwrt

Proponuje żebyś całość wyczyścił firstbootem, zrobił extroota, włączył w fsck. uruchom. Za każdym razem w logread pojawia się info o skanowaniu partycji przez zamontowaniem.

PS. W ogóle to na jakim routerze to robisz?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Proces bootowania openwrt

Cezary napisał/a:

Proponuje żebyś całość wyczyścił firstbootem, zrobił extroota, włączył w fsck. uruchom. Za każdym razem w logread pojawia się info o skanowaniu partycji przez zamontowaniem.

chodzi mi ta myśl od rana, ale nie zrobiłem jeszcze notatek, a parę rzeczy poprzestawiałem, doinstalowałem.

PS. W ogóle to na jakim routerze to robisz?

TL-WR1043ND -- taki jak u Ciebie jeśli się nie mylę.

NETGEAR WNDR4300

8

Odp: Proces bootowania openwrt

Zacznij od firstboota. Bo teraz nie wiadomo co namieszałeś w systemie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Proces bootowania openwrt

Racja. Do dyskusji warto wrócić dopiero jak będzie "na czysto".
Ale jeszcze się troszkę pobawię i zrobię notatki, skopiuję skrypty.
I wtedy dopiero -- potem napiszę co i jak.
Thx.

NETGEAR WNDR4300

10

Odp: Proces bootowania openwrt

Po prostu wyłączasz router jak system plików jest w użyciu. Więc przy następnym montowaniu zawsze będzie wrzeszczał że nie został na czysto odmontowany i zaleca sprawdzenie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Proces bootowania openwrt

ale mi chodzi konkretnie o ta linijke option 'enabled_fsck' '1'
przed podmontowaniem dysku powinien chyba wlaczyc sprawdzanie i ewentualne bledy naprawic a tego nie robi.

12

Odp: Proces bootowania openwrt

I to robi o ile e2fsprogs masz zainstalowany. Ale nie zawsze automat potrafi naprawić błędy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: Proces bootowania openwrt

nie robi bo nie ma wpisu w logach, poza tym rozumiem, ze by wtedy paartycja byla oznaczona jako clean.

14

Odp: Proces bootowania openwrt

A tak w ogóle to jaki router i jaki system?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: Proces bootowania openwrt

wndr 3700 v2, gargoyle 1.5.4

16 (edytowany przez namado 2012-09-30 16:17:32)

Odp: Proces bootowania openwrt

Cześć.

Po pierwsze:
Ten problem dotyczył routera ze "źle" zrobionym Extrootem (wszystkie następne działają dobrze  - czyli skanują system plików).

Po drugie:

Jeżeli chcesz wiedzieć co się dzieje w systemie (routera) to proponuję ustaw:
/etc/config/system

config 'system'
        
        option 'cronloglevel' '0' #zapisuje wszystkie zdarzenia
        option 'log_type' 'file' # do pliku
        option 'log_size' '128' #w KB
        option 'log_file' '/overlay/logi.txt' #gdzie

A Tak jest u mnie (dla Ciebie krótkie sprawdzenie)

1. bez sprawdzania systemu plików
        option enabled_fsck 0

    router podnosi się ok. 1 min. (8 GB pen) (do pierwszego pinga)

Wpis:

Jan  1 01:00:51 usb-modeswitch: 1-0:1.0: Manufacturer=Linux_2.6.32.27_ehci_hcd Product=Atheros_AR91xx_built-in_EHCI_controller Serial=ar71xx-ehci
Jan  1 01:00:52 kernel: EXT4-fs (sda1): warning: mounting unchecked fs, running e2fsck is recommended
Jan  1 01:00:52 kernel: EXT4-fs (sda1): mounted filesystem without journal
Jan  1 01:00:54 usb-modeswitch: 1-1:1.0: Manufacturer=SanDisk Product=Cruzer_Fit Serial=4C532000061122116210

2.         option enabled_fsck 1

komenda restart!

    do restartu urządzenia (kontrolki) ok. 3 min. - start ok 50 sek
    router podnosi się ok. 1 min. (8 GB pen) (do pierwszego pinga)

log:

Jan  1 01:00:50 usb-modeswitch: 1-0:1.0: Manufacturer=Linux_2.6.32.27_ehci_hcd Product=Atheros_AR91xx_built-in_EHCI_controller Serial=ar71xx-ehci
Jan  1 01:00:52 fstab: e2fsck (/dev/sda1): /dev/sda1: Superblock last mount time is in the future.
Jan  1 01:00:52 fstab: e2fsck (/dev/sda1):      (by less than a day, probably due to the hardware clock being incorrectly set)  FIXED.
Jan  1 01:00:52 fstab: e2fsck (/dev/sda1): /dev/sda1: Superblock last write time (Sun Sep 30 16:53:00 2012,
Jan  1 01:00:52 fstab: e2fsck (/dev/sda1):      now = Thu Jan  1 01:00:52 1970) is in the future.
Jan  1 01:00:52 fstab: e2fsck (/dev/sda1): /dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
Jan  1 01:00:52 fstab: e2fsck (/dev/sda1):      (i.e., without -a or -p options)
Jan  1 01:00:52 kernel: EXT4-fs (sda1): warning: mounting fs with errors, running e2fsck is recommended
Jan  1 01:00:52 kernel: EXT4-fs (sda1): mounted filesystem without journal
Jan  1 01:00:54 usb-modeswitch: 1-1:1.0: Manufacturer=SanDisk Product=Cruzer_Fit Serial=4C532000061122116210

b) odcięcie zasilania:

router podnosi się ok. 1 min. (8 GB pen) (do pierwszego pinga)

log:

Jan  1 01:00:50 usb-modeswitch: 1-0:1.0: Manufacturer=Linux_2.6.32.27_ehci_hcd Product=Atheros_AR91xx_built-in_EHCI_controller Serial=ar71xx-ehci
Jan  1 01:00:52 fstab: e2fsck (/dev/sda1): /dev/sda1 contains a file system with errors, check forced.
Jan  1 01:00:54 fstab: e2fsck (/dev/sda1): /dev/sda1: 51/473280 files (39.2% non-contiguous), 918981/1892163 blocks
Jan  1 01:00:54 kernel: EXT4-fs (sda1): mounted filesystem without journal
Jan  1 01:00:56 usb-modeswitch: 1-1:1.0: Manufacturer=SanDisk Product=Cruzer_Fit Serial=4C532000061122116210

WErsja:
----------------------------------------------------------------
|                                                              |
| Gargoyle 1.5.4                                               |
| Wersja Gargoyle: e39f6a4                                     |
| OpenWrt Backfire 10.03.1                                     |
| Wersja OpenWrt: 31348                                        |
| Zbudowano: 2012-04-20 15:53 CEST                             |
|                                                              |
| Cezary Jackiewicz (obsy), http://eko.one.pl                  |

Urządzenie:
logi.txt.0:Jan  1 01:00:32 kernel: MIPS: machine is TP-LINK TL-WR1043ND


Mam nadzieję, że Ci się przyda.

NETGEAR WNDR4300

17 (edytowany przez namado 2012-10-01 10:16:46)

Odp: Proces bootowania openwrt

silvah napisał/a:

u mnie nie ma w logu zadnego wpisu z fstab:

a włączyłeś poziom logowania 0 (aby logował wszystkie zdarzenia)?

silvah napisał/a:

co to znaczy zle zrobiony extroot, skoro dziala?

Mam  8 routerów z openwrt, ten wątek dotyczył przekobinowanego extroota (moje zabawy) i rzeczywiście nie dział fsck, kartę musiałem wyjąć i skanować gdzie indziej, jak pojawiły się błędy.

silvah napisał/a:

pokaz swoj fstab...ja juz nie mam pomyslow.

no problem

root@w:~$ vim /etc/config/fstab
config global automount
        option from_fstab 1
        option anon_mount 1

config global autoswap
        option from_fstab 1
        option anon_swap 0

config mount
        option target   /mnt
        option device   /dev/sda1
        option fstype   ext4
        option options  rw,sync
        option enabled  1
        option enabled_fsck 1

config swap
        option device   /dev/sda2
        option enabled  0

w/g mnie jest tak.
po prostu nie wiesz czy działa czy nie działa (może działa)
jeśli chcesz wiedzieć, to włącz 'cronloglevel' 0 i odłaczaj zasilanie, i po każdej takiej akcji sprawdzaj log (nie reboot, tylko odłączaj wtyczkę).

Powodzenia.

NETGEAR WNDR4300

18

Odp: Proces bootowania openwrt

cronloglevel mam ustawiony a 0. Po odlaczeniu zasilania w logach dalej pusto.

19

Odp: Proces bootowania openwrt

Z której instrukcji zrobiłeś extroota?
Daj linka.

2. Czy napewno masz e2fsprogs

3. Zrobiłeś to:
opkg update
opkg remove plugin-gargoyle-usb-storage

uci del gargoyle.display.system_usb_storage
uci del gargoyle.scripts.system_usb_storage
uci del gargoyle.system.usb_storage
uci commit gargoyle

opkg install block-mount block-hotplug block-extroot
/etc/init.d/fstab enable

NETGEAR WNDR4300

20 (edytowany przez silvah 2012-10-01 11:09:17)

Odp: Proces bootowania openwrt

w sumie to z glowy, bo robilem to juz ktorys raz. Mam zainstalowane wszystko.
plugin-gargoyle-usb-storage nie usuwalem

A z jakiego poradnika Ty robiles extroota, bo widze ze nie masz fstab.@mount[0].is_rootfs=1
?

21

Odp: Proces bootowania openwrt

Bo zapewne pokazał fstab z extroota a nie ze flasha. I pytanie więc się rodzi, czy to fsck we flash jest ustawione.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

22

Odp: Proces bootowania openwrt

Cezary napisał/a:

Bo zapewne pokazał fstab z extroota a nie ze flasha. I pytanie więc się rodzi, czy to fsck we flash jest ustawione.

pare postow wyzej wkleilem fstab z flasha

23

Odp: Proces bootowania openwrt

Wyjmuj pendrive. Uruchom router, podłącz pendrive. Upewnij się że to fsck masz, zrób też fsck na tym nośniku ręcznie. Zrestartuj, zobacz czy extroot się zrobił i zobacz co masz w logach.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24

Odp: Proces bootowania openwrt

Zrób disktype /dev/sda i pokaż co wyszło.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25

Odp: Proces bootowania openwrt

Kronikę specjalnie wyłączyłeś na tym systemie plików?

Jest jeszcze opcja że po prosty e2fsck się wykłada podczas sprawdzenia i nic nie widzisz. dodaj sobie w funkcji która woła fsck (we flash!) własny debug tylko logger "tu jestem!" i zobacz czy przy starcie znajdziesz to logach.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.