歡迎您光臨本站 註冊首頁

實現從ext2到ext3文件系統轉換

←手機掃碼閱讀     火星人 @ 2014-03-23 , reply:0

  (聲明:本文僅供個人學習使用,版權歸文章原創作者所有)

  日誌文件系統ext3具有ext2所不具備的特點和優勢。順利完成從ext2到ext3的轉換,是實現ext3優勢的必經之路。ext3文件系統是ext2文件系統的更高一級版本,它有一個其它同類日誌文件系統所不具備的獨特優勢——完全兼容ext2文件系統,因而ext3能充分利用ext2中已有的操作和應用,而且比ext2更有效、更易用。它在ext2的基礎上加入了記錄元數據的日誌功能,是一個支持非同步的日誌。Red Hat 7.2和SuSE 7.3已率先發行了包含ext3文件系統的Linux。通過使用Linux最新安裝版本和e2fsprogs Linux公用程序,可將ext3文件系統編譯到系統的內核中。這裡介紹的是ext2到ext3系統轉換的一些基本方法,並為用戶提供修正的參考建議。

  ext3日誌文件系統

  1.日誌文件系統
  日誌文件系統的設計思想是跟蹤文件系統的變化而不是文件系統的內容。它用獨立的日誌文件跟蹤磁碟內容的變化,就像關係型資料庫(RDBMS),因而比傳統的文件系統安全。日誌文件系統可以用事務處理的方式,提交或撤消文件系統的變化。當系統非正常關閉,處於寫入磁碟過程中的文件系統被非正常卸載,文件系統就會處於不一致的狀態。為了盡量減少文件系統的不一致性,縮短操作系統的啟動時間,文件系統需追蹤引起系統改變的記錄,這些記錄存放在與文件系統相分離的地方,通常稱為「日誌」。一旦這些日誌記錄被安全地寫入,日誌文件系統就可以將它們應用到文件系統中,清除引起系統發生改變的記錄,並將它們組成一個引起文件系統改變的集。

  日誌文件的主要作用就是可以最大程度地保證文件系統的一致性。通常文件系統存放日誌記錄,當重新引導計算機啟動時,安裝程序為保證文件系統的一致性會檢測日誌記錄,並將它安全地、完整地應用到文件系統中。在大多數情況下,一般操作系統並不檢測文件系統的一致性,使用日誌文件系統的計算機則會在系統引導后,立即使用日誌檢測,降低數據丟失的可能性。

  2.ext3
  ext3文件系統是日誌文件,且100%地兼容ext2文件系統,其與ext2文件系統的主要區別便是它的快速更新文件存儲。計算機開始從磁碟上讀取或寫入數據就必須保證文件系統中文件與目錄的一致性,所有日誌文件中的數據均以數據塊的形式存放在存儲設備中。當磁碟分區時文件系統即被創建,按照文件形式、目錄形式支持存儲數據、組織數據的使用。

  ext3和ext2一樣是由來自多家廠商的開發人員聯合開發的。它的開發不依賴於任何個人或組織,它提供並使用了一個通用日誌層generic journaling layer (jbd)。該層可以在其它環境中使用,能在文件系統中使用,還能夠應用到其它設備中。目前Linux開始支持的NVRAM設備,ext3就能夠支持。當由於軟體或硬體錯誤導致文件系統崩潰時,文件修復程序e2fsck在修複數據方面是非常成功的,ext3使用了和e2fsck相同的代碼來修復崩潰的文件系統,因此當出現數據崩潰時,ext3具有和ext2同樣的防止數據丟失的優點。

  值得指出的是,上述這些優點中的每一點都不是ext3所獨有的,其中的大部分別的文件系統也具有,但只有ext3才盡數具備,這也正是ext3的綜合優勢。ext3稱得上是目前最能滿足用戶需要的日誌文件系統。

  從ext2到ext3的轉換

  1.轉換
  從ext2文件系統到ext3文件系統的轉換,一般的方法是通過在已有的ext2文件系統上添加日誌文件。假設要把原/back (/dev/hda5)從ext2文件系統轉換成ext3文件系統,通常具體步驟如下(建議在轉換系統以前,最好備份文件系統):

  (1)卸載/back目錄

  執行如下命令:
  umount /back

  (2)轉換

  所使用的命令格式如下:
  /sbin/tune2fs -j

  例如,要將分區/dev/hda5的ext2系統轉換成ext3文件系統,所使用的命令如下:

  /sbin/tune2fs -j /dev/hda5

  其中tune2fs是轉換命令,- j選項表示是在已存在的ext2文件系統上建立的ext3日誌。

  (3)安裝/back目錄

  執行如下命令:
  mount -text3 /dev/hda5/back

  執行命令后系統將創建一個日誌文件,如果文件系統在轉換的過程已經被裝載(Mount),那麼在根目錄下會出現「.journal」文件,否則是沒有這個日誌文件的。

  (4)修改/etc/fstab文件

  例如,在將ext2日誌文件系統轉換成ext3日誌文件系統之後,立即更新/etc/fstab引導記錄,可以使用「auto」選項來進行。

  轉換前情況:
  /dev/hda5 /opt ext2 defaults 1 2

  轉換后情況:
  /dev/hda5 /opt ext3 defaults 1 0

  其中Linux的最後一個欄位/etc/ fstab是為引導系統而設置的,並由「fsck(file system check)」程序檢驗文件系統的一致性,同時把/etc/fstab文件中的ext2修改為ext3。當使用ext3文件系統時,能將這個欄位設定為「0」。這意味著fsck程序將不檢查文件系統的一致性,文件系統的一致性將由後面的日誌提供保證。如果要轉換的是引導系統,必須使用initrd啟動系統,可運行mkinitrd,並參照其手冊描述步驟,同時確認LILO或Grub配置中是否裝載了initrd。如果轉換ext3沒有成功,系統仍然能啟動,但是引導系統會以ext2形式裝載,而不是ext3。可以使用命令cat/proc/mount來確認這一點。

  使用如下命令:
  mount

  可以顯示:
  /dev/hda5 on /test type ext3 (rw)

  這時表示系統已成功地從ext2轉換到ext3。

  2.新建
  升級一個已有的ext2,使用tune2fs就可以了。對於需要創建新ext3文件系統的情況,要使用安裝的e2fsprogs軟體包中的mke2fs命令加-f參數。這就可以創建新的ext3文件系統。假設打算把/dev/hda5創建為ext3文件系統,具體步驟如下:

  (1)創建

  執行如下命令:
  mke2fs -j /dev/hda5

  (2)安裝/back目錄

  執行如下命令:
  mount -t ext3 /dev/hda5 /back

  (3)修改/etc/fstab文件

  新的e2fsprogs中的e2fsck支持ext3,當一個ext3文件系統被破壞時,先卸載該設備,再用e2fsck修復。

  執行如下命令:
  umount /back

  e2fsck -fy /dev/hda5

  當系統重新啟動時,一般都要用日誌文件系統進行檢查,這需要一定的時間。用ext3可以避免重啟動時長時間的文件系統檢查,如使用下面的命令:

  tune2fs -i 0 -c 0 /dev/hda4

  可以關閉文件系統檢查。

  如果要從ext3返回ext2,方法也非常簡單,即卸載ext3重新安裝ext2,命令如下:

  mount -text2 /dev/hda5 /test

  當然在啟動中安裝ext2,要在etc/fstab文件中重新設置才行。

  3.修正
  ext3也有缺點,其最大的缺點是沒有現代文件系統所具有的能提高文件數據處理速度和解壓的高性能。Red Hat Linux 8.0.94 發行註記上也指出ext3的一些問題。如果在beta版本上創建了打算永久保留的文件系統,我們推薦從每個文件系統里刪除HTree索引功能的所有痕迹。方法是首先使用以下命令:

  tune2fs -O ^dir_index /dev/

  然後可以使用下面的命令從目錄中刪除索引:

  e2fsck -fD /dev/

  結束語
  Linux操作系統是操作系統家族中的優秀成員,是近年來用戶數量增長最快的系統軟體。ext2文件系統作為所有Linux發行版本的基本文件系統,負責對文件的管理、存取、共享及保護等手段提供給操作系統和用戶。它不僅方便安全,還有效地提高了系統資源的利用率。在Red Hat Linux 7.2中,Red Hat首次採用支持日誌文件系統ext3。它作為第一個正式支持的日誌文件系統,無疑是全面兼容ext2的高性能文件系統,其兼容性包括在ext2文件系統上使用的所有其它應用。從ext2到ext3的升級簡便,而且ext3改進了Linux系統的性能,解決系統中存在的不一致性的問題。ext3文件系統是一個優秀的、極具發展前景的文件系統。

[火星人 ] 實現從ext2到ext3文件系統轉換已經有463次圍觀

http://coctec.com/docs/linux/show-post-116278.html