그래서 Openwrt가 설치된 TL-MR3220v2 라우터가 있고 장치에는 4MB의 플래시만 있으므로 디스크 공간을 늘리기 위해 USB에서 설정을 추출하려고 합니다.
첫 번째 시도는 FAT32 FS를 사용하여 마운트하고 파일을 전송할 수 있었지만 권한, 심볼릭 링크 등으로 인해 FS를 Linux 루트로 사용할 수 없다는 것을 금방 깨달았습니다.
그래서 이번에는 ext4로 포맷된 USB로 다시 시도해보았습니다. 그래서 이 파티션을 내 장치에 마운트하려고 시도했지만 dmesg 로그에 다음과 같이 매번 "분할 오류"가 발생했습니다.
[ 1146.920000] usb 1-1: new high-speed USB device number 3 using ehci-platform
[ 1147.070000] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 1147.090000] scsi host1: usb-storage 1-1:1.0
[ 1148.390000] scsi 1:0:0:0: Direct-Access Lexar USB Flash Drive 1100 PQ: 0 ANSI: 4
[ 1148.400000] sd 1:0:0:0: [sda] 31258624 512-byte logical blocks: (16.0 GB/14.9 GiB)
[ 1148.410000] sd 1:0:0:0: [sda] Write Protect is off
[ 1148.420000] sd 1:0:0:0: [sda] Mode Sense: 43 00 00 00
[ 1148.420000] sd 1:0:0:0: [sda] No Caching mode page found
[ 1148.430000] sd 1:0:0:0: [sda] Assuming drive cache: write through
[ 1148.440000] sda: sda1
[ 1148.450000] sd 1:0:0:0: [sda] Attached SCSI removable disk
[ 1168.550000] CPU 0 Unable to handle kernel paging request at virtual address c0676c40, epc == c0676c40, ra == c0694dd0
[ 1168.560000] Oops[#4]:
[ 1168.560000] CPU: 0 PID: 1596 Comm: mount Tainted: G D 3.18.18 #1
[ 1168.560000] task: 8182a220 ti: 8155a000 task.ti: 8155a000
[ 1168.560000] $ 0 : 00000000 00000000 c0698e60 00000000
[ 1168.560000] $ 4 : c06c6b30 00008000 81578700 00000000
[ 1168.560000] $ 8 : 00003100 8157868a 00000010 00000013
[ 1168.560000] $12 : 7fb3d928 00000000 00000000 770b4000
[ 1168.560000] $16 : 80f6c780 81578700 c06c6b30 c06c6b30
[ 1168.560000] $20 : 00000000 00000000 81578c00 770b4000
[ 1168.560000] $24 : 00000010 8016c38c
[ 1168.560000] $28 : 8155a000 8155be38 00000000 c0694dd0
[ 1168.560000] Hi : 00000019
[ 1168.560000] Lo : 00000000
[ 1168.560000] epc : c0676c40 0xc0676c40
[ 1168.560000] Tainted: G D
[ 1168.560000] ra : c0694dd0 ext4_orphan_del+0x108c/0x1f30 [ext4]
[ 1168.560000] Status: 1000fc03 KERNEL EXL IE
[ 1168.560000] Cause : 10800008
[ 1168.560000] BadVA : c0676c40
[ 1168.560000] PrId : 00019374 (MIPS 24Kc)
[ 1168.560000] Modules linked in: ext4 jbd2 mbcache crc16 crypto_hash usb_storage sd_mod scsi_mod ath9k ath9k_common pppoe ppp_async iptable_nat ath9k_hw ath pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT slhc nf_reject_ipv4 nf_nat_masquerade_ipv4 nf_nat_ftp nf_nat nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack_ftp nf_conntrack iptable_raw iptable_mangle iptable_filter ip_tables crc_ccitt compat ledtrig_usbdev ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables ipv6 arc4 crypto_blkcipher ohci_platform ohci_hcd ehci_platform ehci_hcd gpio_button_hotplug usbcore nls_base usb_common
[ 1168.560000] Process mount (pid: 1596, threadinfo=8155a000, task=8182a220, tls=770c1644)
[ 1168.560000] Stack : 80400000 80f6c780 81578700 804073f0 c0698e60 80116f30 81733300 800ffc68
[ 1168.560000] 00000000 81578c00 c06c6b30 81578700 00008000 c06c6b30 80f6c780 81578700
[ 1168.560000] 00008000 80116fdc 00008000 8010a4a0 00000001 7fb3df74 c06c6b30 00000020
[ 1168.560000] 80391f70 00008000 81578700 80119de8 8182ebc0 7fb3df74 0000000a 800ddc68
[ 1168.560000] 81b1f010 8088e4c8 7fb3dc34 770b4000 00000000 0000000a 00000000 81578c00
[ 1168.560000] ...
[ 1168.560000] Call Trace:
[ 1168.560000] [<c0698e60>] ext4_calculate_overhead+0x4b8/0x3238 [ext4]
[ 1168.560000] [<80116f30>] alloc_vfsmnt+0x124/0x16c
[ 1168.560000] [<800ffc68>] mount_fs+0x20/0xd8
[ 1168.560000] [<80116fdc>] vfs_kern_mount+0x64/0x114
[ 1168.560000] [<8010a4a0>] user_path_at+0x14/0x20
[ 1168.560000] [<80119de8>] do_mount+0x868/0x974
[ 1168.560000] [<800ddc68>] memdup_user+0x28/0x90
[ 1168.560000] [<8011a178>] SyS_mount+0x90/0xd4
[ 1168.560000] [<80062b5c>] handle_sys+0x11c/0x140
[ 1168.560000] [<80064f40>] __bzero+0xc4/0x164
[ 1168.560000]
[ 1168.560000]
[ 1168.560000] Code: (Bad address in epc)
[ 1168.560000]
[ 1168.820000] ---[ end trace 9f7c3beeded42796 ]---
df:
root@OpenWrt:/# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 640.0K 572.0K 68.0K 89% /
/dev/root 2.0M 2.0M 0 100% /rom
tmpfs 13.9M 656.0K 13.3M 5% /tmp
/dev/mtdblock3 640.0K 572.0K 68.0K 89% /overlay
overlayfs:/overlay 640.0K 572.0K 68.0K 89% /
tmpfs 512.0K 0 512.0K 0% /dev
무료:
root@OpenWrt:/# free
total used free shared buffers
Mem: 28508 17516 10992 656 568
-/+ buffers: 16948 11560
Swap: 0 0 0
여기서 무슨 일이 일어나고 있는지 확실하지 않은 경우 free 명령을 실행하면 RAM의 절반이 아직 사용되지 않은 것으로 표시되므로 RAM이 문제가 되지 않는다고 생각합니다. ext2와 3을 사용해 보았지만 동일한 출력을 얻었습니다.
누구든지 아이디어가 있으면 감사하겠습니다! 감사해요!
편집: 그래서 이 페이지를 찾았습니다.http://blog.csdn.net/u011839461/article/details/12001437BadVA == epc이면 메모리 손상 가능성이 가장 높다고 나와 있지만 어떻게 해야 할지 잘 모르겠습니다.
답변1
내 솔루션으로 업데이트할 수 있을 거라 생각했고, 방금 소스에서 Openwrt를 빌드하고 빌드에 필요한 패키지를 포함시켰더니 이제 잘 작동합니다.