티스토리 뷰
모토로이용 ext2, ext3, ext4 모듈 파일입니다.
참고 : 아래의 내용은 절대 초보자를 고려하지 않고 서술하였습니다. 리눅스좀 한다 하는 분들을 위한 내용입니다.
출처만 제대로 표시하면 어디로 퍼가도 좋습니다. (드...드리겠습니다...)
1. ext2/3/4 모듈은 뭔가요?
먼저 ext2/3/4 에 대해서 이야기해 봅시다. 컴퓨터의 하드디스크나 외장 메모리와 같은 장치들은 운영체제에 맞는 파일시스템으로 포맷해야합니다. Windows에서 하드디스크는 NTFS, 외장 메모리는 보통 FAT, FAT32와 같은 형식으로 포맷합니다. 위와 같이 리눅스에서는 주로 ext2/3/4 형식을 사용합니다.
모듈이란 리눅스 커널의 일부분을 파일로 만든것입니다. 리눅스에서는 커널의 일부분을 외부 파일인 모듈로 컴파일하여 필요한 경우에만 로드하여 사용하는 것이 가능합니다.
모토로이의 커널에서는 ext2/3/4를 포함하고 있지 않기 때문에 외부에서 모듈 파일을 로드하여 사용할 수 있습니다.
2. ext2/3/4 끼리의 차이점은 뭔가요?
먼저 ext2는 리눅스의 두번째(!) 파일시스템이며 가장 널리 사용되던 형식입니다. 다만 비 정상적인 종료등으로 인해 파일시스템이 깨지면 복구가 매우 어려운 단점이 있습니다.
ext3는 ext2에 저널링이라는 기술을 도입하였습니다. 저널링이란 파일을 읽고 쓰는 작업을 기록으로 남겨두어 나중에 파일시스템에 오류가 발생하더라도 복구가 용이하게 한 장점이 있습니다.
ext4는 ext3을 좀 더 개량하여 대용량 파일지원, 기존의 저널링을 개선 등의 특징을 가지고 있습니다.
간단히 말해 ext2 : 파일시스템이 깨지면 복구어려움
ext3/4 : 저널링으로 복구가 용이
3. 기존에 App2SD의 ext2 모듈과 첨부파일의 ext2모듈의 차이는 뭔가요?
기술적인 내용의 차이는 없고 단지 디버깅 정보를 제거해서 파일의 크기를 줄인 것 입니다.
기존의 ext2.ko : 840KB
첨부파일의 ext2.ko : 57KB
ext3.ko + jbd.ko = 174.5KB
ext4.ko + jbd2.ko + crc16.ko = 279.9KB
디버깅 정보는 일반 사용자에게는 99.9999999% 필요없습니다. 자리만 차지하는 잉여같으니라고~
4. 어떻게 설치하나요?
여기서는 APP2SD와의 연동은 생각하지 않고 단순히 해당 파티션을 사용할 수 있게만 하겠습니다.
세 개중 하나의 형식만 사용하면 됩니다. 아래 내용은 재부팅 할때마다 적용하려면 mot_boot_mode를 수정해야 합니다.
(a) ext2의 경우
1) PC에서 SD카드의 뒷부분을 ext2형식으로 포맷합니다.
2) ext2.zip파일을 다운받아 ext2.ko 파일을 루트익스플로러를 사용해서
/system/lib/modules/로 복사합니다.
3) busybox chmod 644 /system/lib/modules/ext2.ko (맨처음 한번만 실행)
4) busybox insmod /system/lib/modules/ext2.ko
5) busybox mount -t ext2 /dev/block/mmcblk0p2 /마운트할위치
(b) ext3의 경우
1) PC에서 SD카드의 뒷부분을 ext3형식으로 포맷합니다.
2) ext3.zip파일을 다운받아 jbd.ko와 ext3.ko 파일을 루트익스플로러를 사용해서
/system/lib/modules/로 복사합니다.
3) busybox chmod 644 /system/lib/modules/ext2.ko /system/lib/modules/jbd.ko (맨처음 한번만 실행)
4) busybox insmod /system/lib/modules/jbd.ko
5) busybox insmod /system/lib/modules/ext3.ko
6) busybox mount -t ext3 /dev/block/mmcblk0p2 /마운트할위치
(c) ext4의 경우
1) PC에서 SD카드의 뒷부분을 ext4형식으로 포맷합니다.
2) ext4.zip파일을 다운받아 crc16.ko, jbd2.ko와 ext4.ko 파일을 루트익스플로러를 사용해서
/system/lib/modules/로 복사합니다.
3) e2fsprogs.zip파일을 다운받아 파일들을 루트익스플로러로
적절한 위치(예: /system/xbin폴더)에 복사합니다.
4) busybox chmod 644 /system/lib/modules/ext4.ko /system/lib/modules/crc16.ko /system/lib/modules/jbd2.ko
(맨처음 한번만 실행)
5) busybox chmod 755 /system/xbin/* (맨 처음 한번만 실행)
6) ext4는 바로 마운트가 되지 않습니다. 그래서 파일시스템의 옵션을 약간 수정해야합니다.
7) /system/xbin/tune2fs -O ^huge_file /dev/block/mmcblk0p2 (이 줄은 맨 처음 한번만 실행하면 됩니다.)
8) /system/xbin/e2fsck /dev/block/mmcblk0p2 (이 줄은 맨 처음 한번만 실행하면 됩니다.)
9) busybox insmod /system/lib/modules/crc16.ko
10) busybox insmod /system/lib/modules/jbd2.ko
11) busybox insmod /system/lib/modules/ext4.ko
12) busybox mount -t ext4 /dev/block/mmcblk0p2 /마운트할위치
5. 기타 내용
왜 ext4는 tune2fs를 사용하나요? busybox에 내장된 tune2fs를 사용하면 안되나요?
리눅스에서는 ext4부터 테라바이트급 대용량파일을 지원합니다. 따라서 ext4를 사용하려면 커널에서 Support for Large Block Devices(CONFIG_LBD)를 지원해야 합니다. 그런데 모토로이의 커널에서는 이 옵션이 꺼져 있습니다. 아마 우린 안될거야.....
가 아니라 대신 ext4파티션의 옵션을 수정하면 사용할 수 있습니다. 문제가 되는 부분이 huge_file이라는 flag가 설정이 되어서 마운트가 되지 않는데, 위에서와 같이 tune2fs를 사용하여 -O ^huge_file 옵션을 주거나, 포맷할 때 옵션을 주면 됩니다.(mke2fs -T ext4 -O ^huge_file /dev/block/mmcblk0p2)
맨 처음 한번만 해주면 됩니다. 부팅할때마다 하는게 아닙니다. 그리고 busybox에 내장된 tune2fs는 기능이 부실해서 제대로 안되요.
ext3나 ext4쓰면 빨라지나요? 갤럭시는 빨라지던데...
아뇨. 갤럭시는 별로 좋지 않은 mobiNAND메모리 + 삼적화의 결정체, 안습의 성능 rfs의 조합으로 인해 느렸던 것을 ext4로 포맷해서 성능이 나아진 케이스이고, 모토로이는 이미 App2SD로 ext2를 사용하고 있기 때문에 성능차가 크게 느껴지지 않을겁니다.
내장메모리를 ext4로 포맷하면 빨라지지 않을까요?
성능은 나아질지 몰라도 내장메모리의 수명이 짧아집니다. (그리고 적용할 수 있을지 여부도 모릅니다.)
하드디스크와 달리 NAND메모리는 쓰기에 수명이 있습니다.(대략 10만번정도?) 수명이 다하면 메모리의 셀이 파괴되어 배드블럭(흔히 배드섹터라 말하는)이 생기게 됩니다.
그런데 ext2/3/4는 하드디스크에서 작동하는 것을 생각해 만들었기 때문에 일부부분만 계속 쓰게 되는 경우가 발생하여 수명단축에 영향을 주게 됩니다.
예를 들어, A4용지의 한 부분에만 연필로 썼다 지우개로 지웠다를 반복하면 어떻게 될까요? 그부분은 너덜너덜해지다가 결국 찢어지게 되겠죠?
모토로이의 내장메모리는 yaffs2라는 형식으로 포맷되어있습니다. yaffs2는 NAND메모리에서의 작동을 생각해 메모리를 최대한 골고루 쓰게 되기 때문에 생명연장의 꿈을 이룰 수 있습니다(응?)
갤럭시에서의 패치는 수명단축의 위험을 감수하면서 성능을 향상한 케이스입니다.
갤럭시는 닐프스(nilfs2)도 쓰던데 이건 안되나요?
제가 닐프스가 뭔지 잘 모릅니다-_-. 부두패치, 부두패치하길래 알게 된거라서 자세한 내용도 모르고 GC(가비지 콜렉터)에도 문제가 좀 있다 그래서 일단은 보류입니다. (모토로이 커널 소스에도 없어요;;;;)
어려워요.
네 어려운 내용입니다. 리눅스에 대해 좀 알아야 이해가 가는 내용이기 때문에,
'우띠, 나 바보인가봐' 라며 자책하지 않아도 됩니다.
능력자분이 App2SD에 적용해주길 기다리세요!
module : 모토로이 소스에서 컴파일
e2fsprogs : http://site.google.com/site/juanjosec/android
'컴퓨터 이야기 > Android' 카테고리의 다른 글
안드로이드 멜론 아티스트 화면에서 DCF파일 오류 관련 (0) | 2011.07.21 |
---|---|
멜론 수정 내역 (0) | 2011.06.23 |
Eclair 2.1의 락스크린화면에서 벨<->무음을 벨<->진동으로 바꾸자.(44r) (0) | 2011.02.22 |
io 스케줄러를 deadline으로 변경 (0) | 2011.01.07 |
모토로이용 nilfs2 모듈, isofs모듈, squashfs 모듈 (0) | 2010.11.21 |
- Total
- Today
- Yesterday
- 요리·레시피
- STOP_APP_SWITCH
- setfsb
- 잠금화면
- 일상·생각
- 5초 룰
- ubuntu
- NEXUS S
- dex2jar
- GutsyGibbon
- lockscreen
- 더블린
- 전화번호
- Ubuntu7.10
- U123
- Gutsy
- Android
- apktool
- 아일랜드
- 레터스 투 줄리엣
- IT·컴퓨터
- 안드로이드
- 5 sec rule
- 프로포즈 데이
- 하이픈
- 락스크린
- 문학·책
- 2월 29일
- Leap Year
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |