6 月 122009
 

For CentOS 5.4 以上

yum -y install e4fsprogs
tune4fs -O extents,uninit_bg,dir_index /dev/DEV
e4fsck -yfD /dev/DEV
vi /etc/fstab

====================================================

86 @ 延平 312 第十屆 同學會: Ubuntu 成功由 ext3 轉換至 ext4

升級 Ubuntu 9.04 後可以使用 ext4,且 ext4 的效能也比 ext3 佳。愛嚐鮮的我自然想試試:
只限 Ubuntu 9.04 的用戶,Fedora 10 的處理方式不同,之後再說明。

先確認 e2fsprogs version ≧ 1.41; grub version ≧ 0.97

建立新的檔案系統最單純
# mke2fs -t ext4 /dev/DEV 或
# mkfs.ext4 /dev/DEV

使用新的 ext4 檔案系統
# mount -t ext4 /dev/DEV /wherever
或是加在您的 /etc/fstab 中
/dev/DEV /wherever ext4 relatime,errors=remount-ro 0 1

與開機無關的非系統檔案系統要由 ext3 改成 ext4 很簡單:
由 ext2 升級成 ext3
# tune2fs -j /dev/DEV

由 ext3 升級成 ext4,之後就無法以 ext3 mount
# tune2fs -O extents,uninit_bg,dir_index /dev/DEV

執行 e2fsck 或 fsck.ext4 完成檔案系統修改
# e2fsck -fD /dev/DEV

那使用中的系統檔案系統,/boot 還可以 umount 再升級,但 / 或是 /usr 一開機就 mount 要如何升級呢?

確認要修改的檔案系統為何?如本例中的 root device (/) 為 /dev/sda4
# df -h

檔案系統 大小 已用 可用 已用% 掛載點
/dev/sda4 10G 5.5G 4.1G 58% /

我要修改使用中的 root volume (/dev/sda4)
# tune2fs -O extents,uninit_bg,dir_index /dev/sda4

tune2fs 1.41.4 (27-Jan-2009)

Please run e2fsck on the filesystem.

修改 /etc/fstab,將 ext3 改成 ext4
# /etc/fstab: static file system information.

## proc
/proc proc defaults 0 0
UUID=af2c2831-709e-4594-893e-62a3b40346f5 / ext4 relatime,errors=remount-ro 0 1
UUID=01e55776-967b-443a-a5ae-f95896b2b1eb none swap sw 0 0

你可能想直接 fsck.ext4 完成升級,但對未 umount 的檔案系統直接 fsck 可能造成檔案系統損壞…,我想沒人願意這麼做!當然要選 No,但要如何處理呢?
# fsck.ext4 -fD /dev/sda4 或 e2fsck -fD /dev/sda4

e2fsck 1.41.4 (27-Jan-2009)
/dev/sda4 is mounted.

WARNING!!! Running e2fsck on a mounted filesystem may cause SEVERE filesystem damage.
Do you really want to continue (y/n)? no

check aborted.

# init 1
進入 singel user mode 就會出現 recovery menu 選 fsck,之後全選 yes 即可。

重要!
雖我並未進行以下步驟就成功 reboot 且 系統中 /boot 也放在 / 中,也是 ext4 中…
但若您的系統中有重要資料,還是建議您小心點,以下步驟在 reboot 前要先檢查一下。
另外,Fedora 用戶,在處理上有些不同,請別這樣就 reboot 不然不能開機的機會很大!

1 檢查檔案系統的 UUID,並確認 /etc/fstab 及 /boot/grub/menu.lst 中 UUID 是否一致。
# blkid /dev/DEV

UUID=xxxx / ext4 relatime,errors=remount-ro 0 1

有時需要再 grub-install 一次確保 boot loader grub 可以正確載入。
2 確認 grub 是否正確設定及安裝
# grub-install /dev/DEV –root-directory=/your-root-dir –recheck
(再 recovery mode 的人可以選 install grub 還是 grub 就可以)
此外,有文章建議在 grub.conf 中 kernel 項的最後加上 rootfstype=ext4 不過個人發現並不需要。

待完成檢查及修改後,再 reboot 就可以使用 ext4。我的 grub 也沒有問題,可以正確開機。

參考:
# Ext4 Howto
# Upgrade Ubuntu 8.10 to Ubuntu 9.04 and ext3 to ext4 in 10 Minutes
# 無損轉換ext3到ext4,with Ubuntu Jaunty 9.04

============================================

86 @ 延平 312 第十屆 同學會: fedora ext3 轉換 ext4 心得

Ubuntu 9.04 成功地輕鬆轉換成 ext4 後,在 Fedora 11 釋出之前,手邊的 Fedora 10 也來改改看。

開始前先確認您的 e2fsprogs, kernel 及 mkinitrd 是否更新至最新版。
# yum upgrade mkinitrd e2fsprogs kernel

由 ext3 轉成 ext4 的指令與 Ubuntu 相同。
# tune2fs -O extents,uninit_bg,dir_index /dev/DEV
# e2fsck -fD /dev/DEV

但再轉換前請務必完成以下的步驟!

注意:根據 Ext4 HowTo 的說明, Fedora 的 /boot 請轉成 ext4 !

No version of Fedora at this time (including F11) has support in grub for booting from ext4, so /boot must be ext3 or some other supported filesystem. The anaconda installer enforces this restriction.

轉換隻需三個步驟:
#1 修改 /etc/fstab 將要轉成 ext4 的磁區的 ext3 改成 ext4
注意: /boot 只能使用 ext3 !!
#2 備份舊的initrd.img 並建立新的包含 ext4 module 的 initrd.img
mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old
mkinitrd -v --with=ext4 /boot/initrd-`uname -r`.img `uname -r`
#3 由 ext3 轉換成 ext4
tune2fs -O extents,uninit_bg,dir_index /dev/DEV
e2fsck -fD /dev/DEV
注意:使用中的磁區無法 e2fsck,在 tune2fs 後,建議利用光碟開機再 e2fsck.

第二步驟很重要,沒有 ext4 的 module 開機就會失敗!
參考:Fedora Solved

============================================

86 @ 延平 312 第十屆 同學會: RHEL/CentOS 與 ext4

Fedora 10Ubuntu 9.04 都可以順利將 root device 轉換成 ext4 那 CentOS 或 RHEL 也可以吧…

由於 CentOS 是我的 production system 所以我一點也不想轉換到 ext4,不過還是做了一點功課,有興趣想試試的您可以參考一下,或是您有 ext4 的磁區需要在 CentOS 下使用:

注意:
1. CentOS-5.2 是不支援 ext4
2. CentOS-5.3 的話,需滿足以下要件:
** kernel &get; 2.6.18-128.el5
** yum install e4fsprogs

之後就有 fsck.ext4, mkfs.ext4 這些東西可以了…
root device 由 ext3 改成 ext4,我不敢試,因 ext4 要降回 ext3 非常麻煩,我想等 5.4 以後吧再說吧…

註:目前 RHEL 5.3 中的 ext4 並不支援 delayed allocation 在 RHEL5.4 的 kernel 2.6.29 以後將會支援。

參考:
1. http://ext4.wiki.kernel.org/index.php/Ext4_Howto#For_people_who_are_running_RHEL

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

CAPTCHA Image
Play CAPTCHA Audio
Reload Image