2011-09-20 54 views
6

ext3 có 3 tùy chọn ghi nhật ký: nhật ký, đặt hàng và viết lại. Theo wikipedia entry, các phạm vi này từ ít rủi ro nhất đến nguy hiểm nhất để phục hồi sự cố. Vì một số lý do, phiên bản Linux của Android chỉ hỗ trợ hai tùy chọn sau và mặc định là viết lại. (Tôi đang chạy Froyo)Ghi nhật ký hệ thống tệp Android

Có cách nào để thêm hỗ trợ cho chế độ nhật ký không? Tôi muốn làm điều này trên phân vùng/dữ liệu, đó là ext3, và cũng là nơi mà hầu hết các tập tin ghi xảy ra. Thiết bị của tôi không có pin, vì vậy tôi cần đảm bảo rằng đó là bằng chứng tai nạn khi ai đó ngắt kết nối nguồn điện.

Trong trường hợp bất kỳ ai quan tâm, các tùy chọn Linux được định nghĩa trong kernel/fs/ext3/Kconfig. Tùy chọn cụ thể là EXT3_DEFAULTS_TO_ORDERED.

+1

Tôi đoán là họ chọn không sử dụng nhật ký đầy đủ do các chu kỳ ghi hạn chế của bộ nhớ flash. Nếu bạn thực sự muốn mặc đèn flash của mình, bạn sẽ có thể biên dịch lại hạt nhân bằng bất kỳ tùy chọn nào bạn muốn. Điều này rõ ràng đòi hỏi một số cách để flash hạt nhân trở lại thiết bị của bạn - mà có thể hoặc không thể có thể hoặc dễ dàng, tùy thuộc vào thiết bị bạn có. – JesusFreke

+1

Bất kỳ ý tưởng làm thế nào để biên dịch lại hạt nhân với tùy chọn tạp chí đầy đủ? Như đã nói ở trên, hiện tại chỉ có hai tùy chọn trong Kconfig. Đối với các chu kỳ ghi hạn chế, tôi đang sử dụng eMMC làm hao mòn, nhưng tôi đồng ý, việc ghi nhật ký đầy đủ sẽ gây ra nhiều hao mòn hơn. Tôi có thể flash hạt nhân vào thiết bị vì công ty của tôi thực sự đang xây dựng thiết bị. – Ravi

Trả lời

1

Giải pháp là thêm phần sau vào kernel/fs/ext3/Kconfig và xây dựng lại hạt nhân với EXT3_DEFAULTS_TO_JOURNAL.

choice 
    prompt "EXT3 default journal mode" 
    default EXT3_DEFAULTS_TO_ORDERED 
    help 
     The journal mode options for ext3 have different tradeoffs 
     between when data is guaranteed to be on disk and 
     performance. The use of "data=writeback" can cause 
     unwritten data to appear in files after an system crash or 
     power failure, which can be a security issue. However, 
     "data=ordered" mode can also result in major performance 
     problems, including seconds-long delays before an fsync() 
     call returns. "data=journal" is the safest option but possibly 
     the the great perfromance burden. For details, see: 

     http://ext4.wiki.kernel.org/index.php/Ext3_data_mode_tradeoffs 

     If you have been historically happy with ext3's performance, 
     data=ordered mode will be a safe choice. 


config EXT3_DEFAULTS_TO_JOURNAL 
    bool "Default to 'data=journal' in ext3" 
    depends on EXT3_FS 
    help 
     Both data and metadata are journaled. Should be safe 
     against crashes, power failure, etc. 


config EXT3_DEFAULTS_TO_ORDERED 
    bool "Default to 'data=ordered' in ext3" 
    depends on EXT3_FS 
    help 
     Only metadata are journaled. Data is written first and then 
     metadata is update. Mostly safe against crashes, power 
     failures, etc., except if the anomally occurred while a file 
     is being overwritten. Most of the time files are appended and 
     not over written. 

config EXT3_DEFAULTS_TO_WRITEBACK 
    bool "Default to 'data=writeback' in ext3" 
    depends on EXT3_FS 
    help 
     Ext2 with a fast ckfs. Not always safe against crashes, 
     power failure, etc., but has the best preformance 

endchoice 
Các vấn đề liên quan