Á¦ ¸ñ : CentOS 5.x¿¡¼­ ext4 ÆÄÀϽýºÅÛ »ç¿ë ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ ) ÀÛ¼ºÀÏ : 2009.8.28(±Ý) ¼öÁ¤ÀÏ : 2009.11.17(È­) CentOS 5.4¿¡ ´ëÇÑ ³»¿ë Ãß°¡ CentOS 5.3 ¹öÀü¿¡¼­ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â Ä¿³Î¿¡¼­´Â ext4 ÆÄÀϽýºÅÛÀÇ °³¹ß¹öÀü(ext4dev)À» »ç¿ëÇÒ ¼ö ÀÖ¾ú´Ù. ±× ÈÄ CentOS 5.4(RHEL 5.4)ÀÌ ³ª¿À¸é¼­ ext4ÀÇ °³¹ß µüÁö¸¦ ¶¼¾î³ª°í, Á¤½ÄÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. /lib/modules/Ä¿³Î¹öÀü/kernel/fs/ext4/ ¾Æ·¡¸¦ »ìÆìº¸¸é ext4.ko (¶Ç´Â ext4dev.ko)µîÀÇ ext4 ÆÄÀϽýºÅÛ ¸ðµâÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ext4 ÆÄÀϽýºÅÛ °ü·Ã ÅøÀÎ e4fsprogsÆÐŰÁö°¡ ¼³Ä¡µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì ¼³Ä¡ÇÑ´Ù. # yum install e4fsprogs # rpm -ql e4fsprogs /etc/mke4fs.conf /sbin/debuge4fs /sbin/dumpe4fs /sbin/e4fsck /sbin/e4image /sbin/e4label /sbin/e4undo /sbin/finde4fs /sbin/fsck.ext4 /sbin/fsck.ext4dev /sbin/mke4fs /sbin/mkfs.ext4 /sbin/mkfs.ext4dev /sbin/resize4fs /sbin/tune4fs 1. °£·«ÇÑ °úÁ¤ Á¤¸® (¹æ¹ý 1) ext4 ÆÄÀнýºÅÛ »ý¼ºÇϱâ 1) mkfs.ext4 -L º¼·ý¸í /dev/ÆÄƼ¼Ç 2) /etc/fstab¿¡ ÇØ´ç ÆÄƼ¼Ç Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù. 3) mount /dev/ÆÄƼ¼Ç (¹æ¹ý 2) ext3 -> ext4·Î ÆÄÀϽýºÅÛ º¯°æÇϱâ 1) ext4·Î º¯°æÇÒ ÆÄƼ¼ÇÀ» ¸ÕÀú unmountÇÑ´Ù. ( umount /dev/ÆÄƼ¼Ç ) 2) tune4fs -O extents,uninit_bg,dir_index /dev/ÆÄƼ¼Ç 3) fsck.ext4 -fpDC0 /dev/ÆÄƼ¼Ç 4) /etc/fstab¿¡¼­ ext3 -> ext4·Î ¹Ù²ã ÀúÀåÇÑ´Ù. 5) mount /dev/ÆÄƼ¼Ç 2. ext4 ÆÄÀϽýºÅÛ »ý¼ºÇϱâ ext2, ext3ÆÄÀϽýºÅÛ ¸¸µå´Â °Í°ú µ¿ÀÏÇÑ ¹æ¹ýÀ̹ǷΠµû·Î ¼³¸íÇÒ °Í Á¶Â÷ ¾ø´Ù. ¿¹Á¦¿¡¼­´Â /dev/sdb1 ÆÄƼ¼ÇÀ¸·Î °¡Á¤ÇÑ´Ù. # mkfs.ext4 -L /data /dev/sdb1 (-L Àº º¼·ý¸í. ¾Ë±â ½±°Ô ÀÓÀÇ·Î ÀûÀ¸¸é µÈ´Ù.) # tune4fs -l /dev/sdb1 ¡¦ »ý·« ¡¦ Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize ¡¦ »ý·« ¡¦ ext4´Â ext3ÀÇ Á¦ÇÑÀÎ 2TBº¸´Ù ´õ Å« 16TB±îÁöÀÇ ÆÄÀϵµ »ý¼º °¡´ÉÇÏ´Ù. À§ÀÇ ÆÄÀϽýºÅÛ feature Áß¿¡¼­ 'huge_file' ºÎºÐÀÌ ¹Ù·Î 2TBº¸´Ù ´õ Å« ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ÀÖÀ½À» ¶æÇÑ´Ù. ¶ÇÇÑ ext4¿¡¼­´Â 32000ÀÇ ¼­ºêµð·ºÅ丮 Á¦ÇÑÀ» ³Ñ¾î¼­ 64000°³±îÁö ´Ã¾î³µ´Ù. ÀÌ¿¡ ´ëÇÑ °ÍÀº dir_nlink feature·Î Ç¥½ÃµÈ´Ù. 3. ext3 -> ext4·Î ÆÄÀϽýºÅÛ º¯°æÇϱâ e4fsprogs ¼³Ä¡ ÈÄ tune2fs°¡ ¾Æ´Ñ tune4fs ¸í·ÉÀ¸·Î ext3ÆÄÀϽýºÅÛÀ» ext4·Î º¯°æÇÑ´Ù. tune4fs·Î º¯°æÇϱâ Àü¿¡ ÆÄƼ¼ÇÀº unmountÇÑ´Ù. /dev/sdb1 ÆÄƼ¼ÇÀ» ¿¹·Î µé¾îº¸ÀÚ. # tune2fs -l /dev/sdb1 (º¯°æ Àü) ¡¦ »ý·« ¡¦ Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file Filesystem state: clean ¡¦ »ý·« ¡¦ # # tune4fs -O extents,uninit_bg,dir_index /dev/sdb1 (ÆÄƼ¼Ç ext4·Î º¯°æ) tune4fs 1.41.1 (01-Sep-2008) Please run e4fsck on the filesystem. # # tune4fs -l /dev/sdb1 (º¯°æ ÈÄ, fsck Àü) ¡¦ »ý·« ¡¦ Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent sparse_super large_file uninit_bg Filesystem state: not clean ¡¦ »ý·« ¡¦ 2TB~16TBÀÇ ÆÄÀÏÅ©±â¸¦ »ý¼ºÇÏ°í ½Í´Ù¸é tune4fs -O ¿É¼Ç¿¡ huge_file±îÁö, ¶Ç 32000°³ÀÇ ¼­ºêµð·ºÅ丮 Á¦ÇÑÀ» ³Ñ¾î¼­·Á¸é dir_nlink ±îÁö Ãß°¡ÇØÁÖ¸é µÈ´Ù. fsck.ext4 ¶Ç´Â e4fsck ·Î ÆÄÀϽýºÅÛÀ» °Ë»çÇÑ´Ù. # fsck.ext4 -fpDC0 /dev/sdb1 /data: Group descriptor 0 checksum is invalid. FIXED. /data: Group descriptor 1 checksum is invalid. FIXED. /data: Group descriptor 2 checksum is invalid. FIXED. /data: Group descriptor 3 checksum is invalid. FIXED. /data: Group descriptor 4 checksum is invalid. FIXED. ¡¦ »ý·« ¡¦ /data: Adding dirhash hint to filesystem. /data: 32/8895488 files (3.1% non-contiguous), 455254/8889961 blocks # # tune4fs -l /dev/sdb1 (º¯°æ ÈÄ, fsck ÈÄ) ¡¦ »ý·« ¡¦ Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent sparse_super large_file uninit_bg Filesystem flags: signed_directory_hash Filesystem state: clean ¡¦ »ý·« ¡¦ 4. ext4 ÆÄÀϽýºÅÛ ¸¶¿îÆ®Çϱâ /etc/fstab¿¡¼­ ÇØ´ç ÆÄƼ¼ÇÀÇ ÆÄÀϽýºÅÛ À¯ÇüÀ» ext4·Î º¯°æÇÑ´Ù. ±×¸®°í, mountÇÏ¸é ³¡. # mount /data # mount /dev/sda7 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) ¡¦ »ý·« ¡¦ /dev/sdb1 on /data type ext4 (rw,nosuid) syslogÅëÇØ¼­ ·Î±×´Â ´ÙÀ½°ú °°ÀÌ ³²´Â´Ù. Oct 26 18:48:10 cnx1 kernel: kjournald2 starting: pid 2497, dev sdb1:8, commit interval 5 seconds Oct 26 18:48:10 cnx1 kernel: EXT4 FS on sdb1, internal journal on sdb1:8 Oct 26 18:48:10 cnx1 kernel: EXT4-fs: delayed allocation enabled Oct 26 18:48:10 cnx1 kernel: EXT4-fs: file extents enabled Oct 26 18:48:10 cnx1 kernel: EXT4-fs: mballoc enabled Oct 26 18:48:10 cnx1 kernel: EXT4-fs: mounted filesystem sdb1 with ordered data mode ¡Ø CentOS 5.3¿¡¼­ ±âº»Ä¿³ÎÀ» »ç¿ëÇÏ´Â °æ¿ì /etc/fstab¿¡ ext4dev·Î Àû¾î¾ß ÇÑ´Ù. mount °á°ú¿¡¼­µµ ext4dev·Î Ç¥½ÃµÈ´Ù. 5. mountÇÒ ¶§ ¿¡·¯ (CentOS 5.3¿¡¼­ ext4 °³¹ß¹öÀü(ext4dev)ÀÏ °æ¿ì) mountÇÒ ¶§ ´ÙÀ½°ú °°Àº °æ°í ¸Þ½ÃÁö°¡ ³ª¿Ã ¼ö ÀÖ´Ù. ext4 Á¤½Ä¹öÀüÀ̸é fsck ÈÄ¿¡ mountÇÏ¸é ¹®Á¦¾øÀ» °ÍÀÌ´Ù. ±×·¯³ª ext4dev ¹öÀüÀÏ °æ¿ì¿¡´Â tune4fs·Î ¼³Á¤ º¯°æÀÌ ÇÊ¿äÇÏ´Ù. # mount /data mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or other error In some cases useful info is found in syslog - try dmesg | tail or so syslog ¿¡´Â ´ÙÀ½°ú °°Àº ·Î±×°¡ ³²¾ÆÀÖ´Ù. Aug 28 11:11:55 cnx1 kernel: EXT3-fs: sdb1: couldn't mount because of unsupported optional features (40). tune4fs ·Î ¼³Á¤ º¯°æ ÈÄ tune4fs -l ·Î »ìÆìº¸¸é, ÆÄÀϽýºÅÛ flagÀÇ º¯È­°¡ ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÀÌÈÄ mountÇÏ¸é ¹®Á¦¾øÀÌ ÇØ°áµÈ´Ù. # mount -t ext4dev /dev/sdb1 /data Aug 28 11:26:42 cnx1 kernel: EXT4-fs: sdb1: not marked OK to use with test code. # lsmod | grep ext4 ext4dev 200029 0 jbd2 55513 1 ext4dev crc16 6209 1 ext4dev # tune4fs -E test_fs /dev/sdb1 tune4fs 1.41.1 (01-Sep-2008) Setting test filesystem flag # tune4fs -l /dev/sdb1 ¡¦ »ý·« ¡¦ Filesystem flags: signed_directory_hash test_filesystem ¡¦ »ý·« ¡¦ 6. Âü°íÀÚ·á * EXT ÆÄÀÏ ½Ã½ºÅÛ(ext1, ext2, ext3, ext4) http://serna.tistory.com/7 * ext4 http://en.wikipedia.org/wiki/Ext4 * huge_file feature¿¡ ´ëÇÑ ±Û http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=509893