1 (edytowany przez mesmariusz 2022-11-27 01:16:05)

Temat: Easy Box 802 - przeniesienie rootfs na pendrive

Witam,

Ponieważ na EasyBox-ie 802 zostało tylko 412 kb flasha, i nie mogę dogrywać żądnych paczek, postanowiłem przenieść rootfs na pendrive wpięty do USB. Zgodnie z poradnikiem, po zamontowaniu pendrive-a pozostaną kroki:


Now create new directory called share using mkdir /mnt/share command and mount the USB to
this directory using mount /dev/sda1 /mnt/share command where /dev/sda1 is your USB flash
memory drive. Now we need to copy the root file system to the USB. Copy these command and
paste it in the terminal.

mkdir –p /tmp/cproot
mount –bind / /tmp/cproot
Tar –C /tmp/cproot –cvf - . | tar –C /mnt/share –x
unmount /tmp/cproot
unmount /mnt/share

Our final step is modifying the fstable file or file system table is a central configuration that
defines how file system should be mounted and we’re going to use fstab file to automate the
process of mounting partitions when booting the router. First thing that we need to know is
what UUID (Universal Unique Identifier) of the USB flash is.

Tymczasem ja mam problem z zamontowaniem pendrive. Jest na nim ext4 filesystem, więc nie wiem czemu komunikat wspomina o NTFS...:

root@EasyBOX:~# mount /dev/sda1 /mnt/share
NTFS signature is missing.
Failed to mount '/dev/sda1': Invalid argument
The device '/dev/sda1' 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?

Ktoś wie o co chodzi, i dlaczego nie mogę podmontować tego pendrive?

Dodam, że OpenWrt wgrany przez sprzedawcę automatycznie montuje podłączane dyski i udostępnia w sieci. Dlatego wcześniej odmontowałem ten zasób i próbuję podmontować mountem.

Dostaję komunikat jak wyżej. O co mu chodzi z tym NTFS-em / sygnaturą NTFS-a ?

2

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

Ponieważ nie podałeś systemu plików przy montowaniu to sprawdza po kolei każdy jaki zna żeby go zamontować. A że masz obsługę ntfs i ntfs jest bardziej gadatliwy to ładnie wypisuje że to nie jest ntfs i go nie zamontuje. Standard, od wieków tak jest w linuksie.

Pokaż

cat /proc/filesystems
block info

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

3

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

Dziwne, bo setki razy montowałem filesystemy ext4 i nigdy taki komunikat mi się nie wyświetlał. Ale nie ważne, bo widzę, że zasób się podmontował. Lost+found jest.

root@EasyBOX:~# mount /dev/sda1 /mnt/share
NTFS signature is missing.
Failed to mount '/dev/sda1': Invalid argument
The device '/dev/sda1' 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?
root@EasyBOX:~# ls /mnt/share
lost+found
root@EasyBOX:~#

I rozmiar też się zgadza:

https://i.imgur.com/DH06Zbe.png


Idę więc dalej za poradnikiem i próbuję wykonać:

root@EasyBOX:~# rmdir /tmp/cproot
root@EasyBOX:~# rmdir /tmp/cproot
rmdir: '/tmp/cproot': No such file or directory
root@EasyBOX:~# mkdir –p /tmp/cproot
mkdir: can't create directory '–p': File exists
root@EasyBOX:~# 

Celowo najpierw usuwam dla 100% pewności katalog, który mam zamiar utworzyć, tymczasem przy próbie utworzenia widzę:

can't create directory '–p': File exists

Hmm, niby wszystko z poradnikiem:

https://i.imgur.com/aOWHAuf.png

Co tym razem może być nie tak ?

4

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

"–p" to nie  jest "-p" (znak "–" nie jest myślnikiem tylko innym znakiem, sprawdź sobie w hexedytorze). Nie kopiuj bezmyślnie poleceń jak komuś polecenia przeszły przez outlooka czy innego worda, pisz ręcznie to co powinno być.

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

5

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

Miałeś rację. Teraz poszło bez problemu.

Tyle, że w kolejnej linii przy bindzie się wysypuje, mimo, że teraz wszystko z palca wpisane.
No i manual, który wyświetla nic o bindzie nie wspomina.

root@EasyBOX:~# mount -bind / /tmp/cproot
mount: invalid option -- b
BusyBox v1.23.2 (2016-05-31 20:08:39 CEST) multi-call binary.

Usage: mount [OPTIONS] [-o OPTS] DEVICE NODE

Mount a filesystem. Filesystem autodetection requires /proc.

        -a              Mount all filesystems in fstab
        -i              Don't run mount helper
        -r              Read-only mount
        -w              Read-write mount (default)
        -t FSTYPE[,...] Filesystem type(s)
        -O OPT          Mount only filesystems with option OPT (-a only)
-o OPT:
        loop            Ignored (loop devices are autodetected)
        [a]sync         Writes are [a]synchronous
        [no]atime       Disable/enable updates to inode access times
        [no]diratime    Disable/enable atime updates to directories
        [no]relatime    Disable/enable atime updates relative to modification time
        [no]dev         (Dis)allow use of special device files
        [no]exec        (Dis)allow use of executable files
        [no]suid        (Dis)allow set-user-id-root programs
        [r]shared       Convert [recursively] to a shared subtree
        [r]slave        Convert [recursively] to a slave subtree
        [r]private      Convert [recursively] to a private subtree
        [un]bindable    Make mount point [un]able to be bind mounted
        [r]bind         Bind a file or directory [recursively] to another location
        move            Relocate an existing mount point
        remount         Remount a mounted filesystem, changing flags
        ro/rw           Same as -r/-w

There are filesystem-specific -o flags.

6

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

mount -o bind / /tmp/cproot

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

7

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

Poszło.

Po reboocie już 3,4 GB zamiast poprzednich 412kB.

Jest moc :-)

Dzięki za pomoc :-)

root@EasyBOX:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    3.4G     16.7M      3.2G   1% /
/dev/root                 5.8M      5.8M         0 100% /rom
tmpfs                    29.4M    252.0K     29.2M   1% /tmp
/dev/sda1                 3.4G     16.7M      3.2G   1% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda1                 3.4G     16.7M      3.2G   1% /mnt/sda1
root@EasyBOX:~#

8 (edytowany przez mesmariusz 2023-01-19 23:38:40)

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

Cześć.

Po kilku tygodniach przerwy przenoszę rootfs na pendrive na kolejnym routerze. Niby robię wszystko jak poprzednio, ale nie działa.

Na pendrive mam spodziewaną strukturę plików, niestety z jakiegoś powodu router nie startuje z tego pendrive-a.

Procedura, którą stosuję:

1. Przygotować pendrive z systemem plików ext4, bootowalny (active),

2. Doinstalować routerowi obsługę pamięci USB z systemem plików ext4:

opkg update
opkg install kmod-usb-core kmod-usb2 kmod-usb-storage kmod-fs-ext4

3. Upewnić się, że pendrive jest widziany przez router:

ls /dev/s*

Prawdopodobnie pendrive będzie widziany jako urządzenie /dev/sda z założonym systemem plików /dev/sda1

4. Upewnić się, że katalog /mnt jest pusty:

ls /mnt

5. Założyć katalog tymczasowy dla rootfs:

mkdir -p /tmp/cproot

6. Założyć katalog do którego zamontowany zostanie pendrive oraz zamontować tam pendrive:

mkdir /mnt/share
mount /dev/sda1 /mnt/share

7. Upewnić się, że pendrive został poprawnie zamontowany:

ls /mnt/share

Wynikiem powinno być wyświetlenie katalogu lost+found charakterystycznego dla podmontowanego systemu plików ext4.

8. Dowiązać rootfs:

mount -o bind / /tmp/cproot

9. Skopiować rootfs na pendrive:

tar -C /tmp/cproot -cvf - . | tar -C /mnt/share -x

10. Odmontować udziały tymczasowe, wykorzystane w tym procesie:

umount /tmp/cproot
umount /mnt/share

11. Zrestartować system routera:

reboot

12. Upewnić się, że router wystartował system z pendrive-a i w strukturze plików pojawił się rootfs:

df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    3.4G     16.7M      3.2G   1% /

Wszystko idzie gładko, ale po reboocie rootfs się nie pojawia (pkt. 12). Router nie startuje z pendrive-a.

Innymi słowy po reboocie ciągle mam:

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 3.8M      3.8M         0 100% /rom
tmpfs                    59.0M     80.0K     58.9M   0% /tmp
/dev/ubi0_1              17.1M    564.0K     15.7M   3% /overlay
overlayfs:/overlay       17.1M    564.0K     15.7M   3% /
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~#

Z góry dzięki śliczne za pomoc / wyłapanie co robię nie tak.

9

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

A jakaś modyfikacja fstaba? Bo skopiowałeś ale nie zrobiłeś żeby go montował jako extroota.

Ponad to właściwie to dlaczego przenosisz cały filesystem zamiast zrobić właśnie extroota?

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

10

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

Cezary napisał/a:

A jakaś modyfikacja fstaba?

A widzisz, fstab... Całkiem o nim zapomniałem. Już się zabieram za poprawkę.

Przenoszę całość, bo ktoś tak gdzieś kiedyś sugerował i tak robiłem do tej pory. Pewnie ma to zalety i wady.

11

Odp: Easy Box 802 - przeniesienie rootfs na pendrive

Tak jak napisałeś stozowny wpis w fstab załatwia sprawę. Przykładowy wpis:

config 'mount'
        option  target '/'
        option  uuid 'd27fb712-4b2c-d901-0088-b7124b2cd876'
        option  enabled '1'
        option device '/dev/sda1'
        option fstype 'ext4'

Dzięki.