記憶卡用 Ext3 檔案系統會很容易出問題嗎? - Linux

Table of Contents



大家好,
從我開始在 Eee PC 上用 Linux 以來,
我用的幾乎都是 Ext3 檔案系統。
因為一開始用 Ubuntu Eee,它的 wiki 上有說,
不需要特別選 Ext2 等非日誌式檔案系統,
就算是日誌式,對記憶卡 Flash 的讀寫也不致造成太大的傷害,
所以 Ubuntu Eee 預設就是用 Ext3 了,我也樂得從善如流,
不管是 SSD 硬碟或是擴充讀卡機裡插著用來充當家目錄的記憶卡,
我都選用 Ext3。
來用 Mandriva 以後,選的檔案系統也一樣。

但是,因為 Eee PC 70x 系列電力甚弱,
我常有休眠以後長時間忘記看顧筆電、導致筆電直接沒電的壞現象,
結果重開機的時候照理說 fsck 會 replay journal,然後把檔案系統恢復正常。
一開始的時候我沒有把 fstab 設好,所以總是進了 X 以後才發現檔案系統變唯讀了,
又要重開機進安全模式 check 一次;
但是後來我 fstab 裡也設了,
應該只要一沒有正常關機,檔案系統就應該會被標為 not clean,
然後 fsck 應該都要正常運作才對;但事實上,現在我用 Mandriva 2009,
卻常常碰到兩種情形:

1. 未正常關機,重開機的時候檔案系統仍標為 clean,
結果開機過程就這樣給它放過去了,
錯失了應該檢查磁碟、恢復 journal 的時機,
進 X,發現家目錄變唯讀 → 重開機強迫檢查 → 檢查出大量錯誤 →
損失不少檔案必須重建

2. 未正常關機,重開機的時候檔案系統標為 not clean,
所以 fsck replay journal,修復一點問題,然後說已經解決了,變為 clean,
然後繼續開機 → 進 X → 發現還是有幾個檔案錯亂了。

我想問的是,
各位有在 Flash 類儲存媒體上用 Ext3 檔案系統,尤其是把它們當成家目錄來用的人,
大家遇到未正常關機的時候,你的 distro 都是設定怎麼處理?
是會在開機過程中就自動 fsck,還是無此設定?
如果有 fsck 的話,都能正常恢復檔案系統嗎?
還是也會發生「明明做 fsck,卻還是一堆檔案救不回來」的慘狀?

我覺得有點無力的是,
我也在 fstab 裡把該分割區的 fsck 旗標設為 1 還 2 了,反正不是 0,
照理說只要一不正常關機,fsck 就應該趕快修復分割區了,
但有時明明有問題卻還是當作 clean 而放過;
另外就是有時明明也用 fsck 了,
卻還是修出一大堆離譜的問題,
一下子說哪個 inode 和其他 inode 有 multiply-claimed block,
然後又是說哪個 inode 變成 orphan,
搞到最後,修完以後進了系統,打開 gtk-2.0.rc,
內容卻是某個 gconf 的 xml 的內容;
或者某個資料夾底下的檔案全部被丟到 lost+found 去
(但我看家目錄的 lost+found 卻是空的)
不知道怎麼找回來,有點令人氣結啊。

我想這是 Eee PC 電力太弱的限制,還有我個人使用電腦習慣不佳所致
(不過有了行動裝置,總希望它可以長時間休眠、要用的時候再開)
但我對 fsck 以及檔案系統的運作還是不太了解,
不知道為什麼有了這重重保護機制,我的檔案還是常常救不回來,
不知道是 Ext3 在 Flash 上有什麼苦衷,
還是我哪邊沒有調校好?
我記得我的桌機硬碟用 ReiserFS,有時候也會 unclean shutdown,
也是會 check 和 replay journal,但這段過程從來不會讓我失望,
也不會把我的家目錄資料搞爛。
但在我的 Eee PC 記憶卡所用的 Ext3 上,
不論以前是用 Ubuntu Eee 還是現在用 Mandriva、
不管是否處於休眠,只要電腦用到沒電不正常關機,
不管是否下次開機時立刻進行 fsck,
都有很大的比率會造成一些檔案損失、位置錯亂。

不好意思問題的說明頗長。
可否請各位先進給我一些經驗分享和建議?
謝謝!

--

All Comments

Quanna avatarQuanna2009-02-20
我在隨身碟上用ext3也很慘 有時候光是程式不正常關閉
Charlie avatarCharlie2009-02-20
就可以導致manaul fsck然後整個/etc都跑進lost+found
Edwina avatarEdwina2009-02-21
那時候也覺得很奇怪 但換成硬碟後一切又正常了
Odelette avatarOdelette2009-02-23
BUG?
Regina avatarRegina2009-02-25
要不要用用看debian啊 之前灌了很順
John avatarJohn2009-02-25
要不要試試XFS/JFS,我NB用XFS,也是常常斷電,沒碰到狀況
Delia avatarDelia2009-03-02
我目前比較考慮換 file system 而非換 distro
謝謝樓上各位的意見耶!
Lucy avatarLucy2009-03-04
不過 Zxl 兄,你的 XFS 也有用在記憶卡或隨身碟嗎?
Christine avatarChristine2009-03-06
JFS 吧, 小弟用jfs 的
Susan avatarSusan2009-03-09
xfs斷電或是當機的話你會哭,你mount成ext2試試看就好了
Franklin avatarFranklin2009-03-13
不過 Ext2 不是沒有日誌?那樣子會不會恢復很久?
Ingrid avatarIngrid2009-03-18
我沒裝在記憶卡上,直接用,在nb吃電池的時候,系統會略過。
也沒檢查什麼。我的伺服器用JFS+raid5+1,硬碟掛過還能救。
Suhail Hany avatarSuhail Hany2009-03-19
之前系統裝在隨身碟(flash)上的時候也覺得很詭異
Irma avatarIrma2009-03-23
軟體有沒有正常執行跟儲存媒體應該沒關係
Zora avatarZora2009-03-25
可是用起來真的是有關係 重灌兩次 一次是/etc噴掉
一次是/usr/lib 當時以為是ext2設計不良 我平常適用bsd
Jake avatarJake2009-03-28
所以不瞭解ext2 第三次改灌在硬碟上 就很耐操了
Ursula avatarUrsula2009-03-29
我覺得是fsck對非硬碟的儲存媒介的處理有問題
在開機要作fsck的時候 硬碟版的可以有一條光棒在那裡跑
Mary avatarMary2009-03-29
flash版的直接跳進文字模式 叫我fsck manually
做完總是會有很多東西跑進lost+found
那個flash disk是個ADATA 8G的隨身碟
Zenobia avatarZenobia2009-04-01
對了,我平常習慣用s2disk,比較少用s2ram,習慣不同。
Joe avatarJoe2009-04-06
flash+ext2/3的問題似乎很多 我有碰過每次開機進去都要修復