ISAG's Blog --AYBABTU

Monday, September 13, 2004

ต้องกู้ Filesystem อีกแล้ว

คราวนี้เป็นปัญหาเรื่อง RedBoot กับ JFFS2 เซ็งมาก งานกู้ระบบเนี่ยมันยากจริงๆ ทุกคำสั่งที่จะพิมพ์ต้องคิดดีๆ แถมระบบยิ่งเล็กยิ่งกู้ยาก จะใส่ kernel append line เข้าไปโต้งๆแบบ lilo ก็ไม่ได้ ต้องมาทำ kernel ใหม่ แล้วให้มัน init=/bin/bash ถึงจะได้ command line มาแล้วก็บรรเลงเพลงสวรรค์ค่อยๆงัดไฟล์ขึ้นมาทีละไฟล์ๆ ตอนนี้กำลังทำอยู่ จะสำเร็จหรือไม่โปรดติดตาม..
RedBoot> fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0x00000000  0x00000000  0x00040000  0x00000000
RedBoot config    0x01F80000  0x01F80000  0x00001000  0x00000000
FIS directory     0x01FC0000  0x01FC0000  0x00040000  0x00000000
rootfs            0x00040000  0x00040000  0x006C0000  0xA0100000
linux             0x01E80000  0xA0108000  0x00100000  0xA0108000
userfs            0x006C0000  0x006C0000  0x01780000  0xA0100000
RedBoot>
นี่คือ partition table เจ้าปัญหา สังเกตุที่ rootfs มันเข้าไปทับกับ user คือขนาดของ rootfs ต้องเป็น 0x00680000 ถึงจะถูก ไม่รู้แม่งกลายเป็น 0x006C0000 ได้ไง rootfs ที่เต็มปรี่ผสมกับเริ่ม Initialize userfs กลายเป็นตูด rootfs และ หัว userfs ทับกันส่งผลให้เกิดเหตุการณ์ filesystem corruptiong นรกแตกครั้งนี้

จุดเริ่มต้นของ rootfs 0x00040000 บวกกับขนาดของมัน 0x00680000 ได้ 0x006C0000 เป็นจุดเริ่มต้นของ userfs พอดี


ปล. เมื่อ ๒ สามเดือนก่อนเจอ file ขนาดใหญ่กว่าขนาดของ hdd ทำอะไรก็ไม่ได้ จะลบก็ไม่ได้ต้องเข้า sigle แล้วใช้ reiserfs มา rebuild-tree ใหม่หมด เสียวหน่อยต่ก็ไม่ปวดหัวท่านี้ กู้ reiserfs บน PC ลุ้นกว่านี้แต่ก็ง่ายกว่านี้เยอะเลย

0 Comments:

Post a Comment

<< Home