freeboard
�� �б�
제목 Oneplus One 의 파일시스템 변경하기 (ext4->f2fs) 추천 0 IP 주소 220.81.xxx.133
글쓴이 놀리지마유 날짜 2014.08.27 15:50 조회 수 7167

안녕하세요. 신나는 수요일 입니다.

내용은 바로 원플러스 원의 기본 파일 시스템인 EXT4를 F2FS 로 변경 해보도록 하겠습니다.

 

먼저, F2FS 가 무엇인지 궁금하실 겁니다.

저도 잘 모릅니다 =.=

간단히 말씀드리면 F2FS는 Flash Friendly File System 의 약자로, 삼성의 리눅스 시스템 커널관련 부서의 김재국(삼성전자 책임연구원)씨가 만들었다고 합니다.

F2FS는 작게는 모바일에서 크게는 서버 까지 SSD나 eMMC, SD 카드 같은 낸드 플래쉬메모리 기반의 장치에 최적화된 파일 시스템이라고 합니다.

이론적으로 EXT4보다 퍼포먼스, 안정성이 향상되었습니다.

성능에 관한 부분은 아래의 링크로 들어가셔서 내용을 한번 읽어보시기 바랍니다.

 

F2FS 파일시스템 성능 벤치마크 : http://gamma0burst.tistory.com/532, http://gamma0burst.tistory.com/573

 

그럼 이제 본론으로 넘어가기 전에 필요한 것들을 컴퓨터에 다운로드 받도록 하겠습니다.

 

- 준비 사항

1. OnePlus One Rom - XNPH33R : fastboot 모드가 아닌 recovery 에서 플래쉬가 가능한 팩토리 이미지파일

  다운로드 : http://dist01.slc.cyngn.com/factory/bacon/cm-11.0-XNPH33R-bacon-signed.zip


※ 설치 진행 과정 1~7번까지 하기 귀찮으시다면 위의 파일 대신에 아래의 파일을 다운 받으셔서 진행 하실 수 있습니다. (다운로드 속도가 느려도 이해하시기 바랍니다.)

다운로드 : cm-11.0-XNPH33R-bacon-f2fs.zip (466MB) 

 

2. AK Kernel : 기본커널은 F2FS 파일시스템을 지원하지 않습니다. F2FS 파일시스템을 지원하는 AK Kernel 을 사용하도록 하겠습니다. 그리고 UKM 도 함께 다운 받아주세요.

  다운로드 (ak Kernel 최신 안정커널) : http://ak.hiddenbytes.org/downloads/ak.031.opo.cm11s.zip

  다운로드 (UKM) : http://ak.hiddenbytes.org/downloads/UKM_v3.2.zip

 

3. Philz Recovery with F2FS support : F2FS 파일시스템을 지원하는 필즈 리커버리 입니다. 리커버리에서 플래쉬가 가능한 zip 파일 입니다.

  다운로드 : http://forum.xda-developers.com/attachment.php?attachmentid=2909507&d=1408830518 (bacon_philz_touch_6.57.5_katinatez.zip)

  (출처 : http://forum.xda-developers.com/showpost.php?p=55011396&postcount=145)

 

4. TWRP Recovery : 필즈 리커버리를 fastboot 에서 바로 플래쉬가 불가능하기때문에 다음처럼 순서를 진행할 것입니다.

먼저 fastboot 모드에서 TWRP Recovery 를 설치하고 리커버리로 부팅하여 Philz Recovery 를 다시 설치 하도록 하겠습니다.

  다운로드 : http://techerrata.com/file/twrp2/bacon/openrecovery-twrp-2.7.1.1-bacon.img

 (출처 : http://techerrata.com/browse/twrp2/bacon)

 

5. Boot\Recovery RePacker : boot.img 파일을 언팩하고 다시 리팩하기 위해서 필요합니다. 닷넷 프레임워크 3.0+ 이상이 필요합니다.

아래의 다운로드 경로에 들어가서 설치 버젼(EXE) 혹은 압축파일(ZIP)로 된것을 다운 받으시면 됩니다.

참고로 설치하고 실행시에 화면이 나타나는데 좀 시간이 걸립니다. 당황하지 마시고 기다려 주시면 됩니다.

  다운로드 : http://boot-repacker.blogspot.kr/p/blog-page.html

 

이제 본론으로 넘어가서 실제 삽질에 들어가 보도록 하겠습니다.

 

- 설치 진행

 

1. 준비사항 1에서 다운로드 받았던 cm-11.0-XNPH33R-bacon-signed.zip 팩토리 이미지 파일을 압축해제하거나 boot.img 파일만 따로 추출한다.

 

2. 마찬가지로 준비사항 2에서 다운로드 받은 ak 커널() 파일을 압축해제하고 파일 중 "zImage" 라는 파일을 "boot.img-zImage"로 변경한다.

 

3. Boot\Recovery RePacker 프로그램을 실행하고 1번에서 추출한 boot.img 파일을 드래그 하고 "Unpack"을 실행하면 "boot.img-unpacked"라는

폴더가 생성이 됩니다. 2번에서 파일 이름을 변경한 "boot.img-zImage" 파일을 "boot.img-unpacked" 폴더 아래에 있는 파일로 덮어쓰기 합니다.


4. "\boot.img-unpacked\boot.img-ramdisk" 폴더 아래에 "fstab.bacon" 파일을 열어서 내용을 다 지우고 아래 내용을 복사해서 저장하시기 바랍니다.


# Android fstab file.
#                                              
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

/dev/block/platform/msm_sdcc.1/by-name/system       /system         f2fs    ro,noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait
/dev/block/platform/msm_sdcc.1/by-name/userdata     /data           f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait,nonremovable,encryptable=/dev/block/platform/msm_sdcc.1/by-name/reserve4
/dev/block/platform/msm_sdcc.1/by-name/cache        /cache          f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait
/dev/block/platform/msm_sdcc.1/by-name/persist      /persist        ext4    nosuid,nodev,barrier=1,data=ordered,nodelalloc,nomblk_io_submit,errors=panic wait
/dev/block/platform/msm_sdcc.1/by-name/boot         /boot           emmc    defaults                                                        defaults
/dev/block/platform/msm_sdcc.1/by-name/recovery     /recovery       emmc    defaults                                                        defaults
/dev/block/platform/msm_sdcc.1/by-name/misc         /misc           emmc    defaults                                                        defaults
/dev/block/platform/msm_sdcc.1/by-name/modem        /firmware       vfat    ro,shortname=lower,uid=1000,gid=1026,dmask=227,fmask=337,context=u:object_r:firmware_file:s0        wait

/devices/platform/xhci-hcd                          auto            vfat    defaults voldmanaged=usbdisk:auto

아니면 다음 파일을 받으셔서 교체하시기 바랍니다.

다운로드 : fstab.bacon

 

5. Boot\Recovery RePacker 프로그램으로 다시 리팩합니다. 그러면 "boot-20140827-140904.img" 이런 형태로 파일이 생기고 "boot.img-unpacked" 폴더는 자동적으로 삭제됩니다. 기존의 boot.img 를 지우고 "boot-20140827-140904.img" -> "boot.img"로 변경합니다.


6. cm-11.0-XNPH33R-bacon-signed.zip 파일을 열어 5번의 "boot.img" 파일로 교체를 한다.

 

7. cm-11.0-XNPH33R-bacon-signed.zip 파일의 "META-INF\com\google\android" 폴더로 들어가면 "updater-script" 파일이 있는데 다음의 파일로 교체한다. 이제 플래슁 하기위한 롬파일 준비가 완료되었습니다.

다운로드 : updater-script

 

※ 1~7번까지 하기 귀찮으시다면 아래의 파일을 다운 받으셔서 진행 하실 수 있습니다. (다운로드 속도가 느려도 이해하시기 바랍니다.)

다운로드 : cm-11.0-XNPH33R-bacon-f2fs.zip (467MB) 

 

8. 먼저 TWRP 리커버리를 설치하도록 하겠습니다. PC와 폰을 연결하여 "bacon_philz_touch_6.57.5_katinatez.zip" 파일을 찾기 쉬운곳에 복사합니다.

복사후 폰을 "fastboot" 모드로 부팅합니다. 전원 버튼을 길게 누르고 - Reboot - bootloader(부트로더)로 선택하시면 됩니다.

 

9. 안드로이드 SDK 를 사용하여 TWRP 를 플래쉬하고 재부팅 합니다.

DOS창에서 "fastboot flash recovery openrecovery-twrp-2.7.1.1-bacon.img" 실행 후

"fastboot reboot" 명령을 실행하여 재시작 합니다.

 

10. 전원버튼을 계속 눌러서 이번엔 "Reboot - Recovery" 로 부팅합니다.

 

11. TWRP 리커버리에서 "Install" 해서 위에서 복사한 Philz 리커버리 파일을 찾아서 플래쉬한다. 이제 다시 재부팅을 하여 다시 리커버리로 진입합니다.

이번엔 F2FS 파일시스템을 지원하는 Philz 리커버리가 나옵니다. 

 

※ EXT4 파일시스템을 F2FS 파일시스템으로 변경하기 위해 포맷을 진행하게 되므로 모든 데이터가 삭제됩니다. 중요한 데이터는 미리 백업을 해주시기 바랍니다. 

 

12. PhilZ 리커버리에 진입한 상태에서 아래와 같이 진행하여 주시기 바랍니다.

 

12.1 "Wipe and Format Options" - "Custom Format Options" - "toggle f2fs <-> ext4 migration"

아래쪽에 텍스트로 "ext4 <-> f2fs conversion enabled" 내용이 표시될 거에요

 

12.2 "format /system" - "f2fs" - "Yes - Format device"

Done formatting /system (f2fs)

 

12.3 "format /cache" - "f2fs" - "Yes - Format device"

Done formatting /cache (f2fs)

 

12.4 "format /data and /data/media (/sdcard)" - "f2fs" - "Yes - Format device"

Done formatting /data (f2fs)

/system, /cache, /data 파티션이 모두 f2fs 파일시스템으로 포맷이 완료되었습니다. PhilZ 리커버리 첫 화면으로 돌아갑니다.

 

13. 이제 수정된 원플러스 원 롬파일을 sideload 를 이용하여 플래쉬 하겠습니다. (PC와 스마트 폰 연결)

13.1 "Install Zip" - "Install zip from sideload"

 

13.2 PC DOS 창에서 진행

CM11 ROM 설치 : "adb sideload c:\tmp\cm-11.0-XNPH33R-bacon-f2fs.zip"

AK Kernel 설치 : "adb sideload c:\tmp\ak.031.opo.cm11s.zip"

UKM 설치 : "adb sideload c:\tmp\UKM_v3.2.zip"

뱅킹 가능한 루팅설치 (필요시) : "adb sideload c:\tmp\UPDATE-Banking-SuperSU-v2.02.zip"

다운로드 : (맛클) http://www.matcl.com/?m=bbs&bid=appDB&where=subject%7Ctag&keyword=supersu&uid=232467

 

※ 모든 설치가 완료 되었습니다. 재부팅 하시고 귀찮은 셋팅 들어가시면 됩니다.

고생하셨습니다.

 

0827153725559256.jpg

 0827170217260322.jpg


원본 출처 : http://forum.xda-developers.com/showpost.php?p=55020890&postcount=1 내용을 토대로 작성 되었습니다. Thanks to gulp79

올려서는 안되는 내용이라면 과감히 삭제해주세요 ㅠ.ㅠ

번호 제목 글쓴이 날짜 조회 수 추천 수
공지 언더케이지 게시판 이용안내 (11/11/2016 개정) [11] KGNEWS 2016.11.11 49233 0
공지 언더케이지 리뷰 관련 FAQ (2016.10.10) [26] UnderKG 2016.10.10 6324 1
공지 서비스 제휴 관련 안내입니다. [10] UnderKG 2014.06.25 77650 0
37388 저도 버즈케이스 받았네요!! new NOTE7 2020.02.26 110 0
37387 코로나 현황 [2] new 언사모 2020.02.26 319 0
37386 아이폰 꾸미기 사이트 강력 추천(탈옥X) [4] 언사모 2020.02.25 1618 0
37385 유튜브 댓은 안보는 게 정신 건강에 좋다는 걸 느낍니다 [7] 우미 2020.02.25 1142 0
37384 S20 플러스 받았습니다ㅎㅎ [5] BIG.D 2020.02.24 1601 0
37383 버즈 플러스 사은품(옥션 레트로티브이) [2] 환타두부 2020.02.24 1099 0
37382 갤럭시 S20 울트라 예약했습니다. 노키아온더헤븐스도어 2020.02.24 418 0
37381 dbrand 스킨 붙였습니다 [9] updatefile 불나방튀김 2020.02.24 860 0
37380 에어프라이기 샀습니다 [2] dowshow 2020.02.24 405 0
37379 갤럭시 버즈 정보가 좀 다른거 같습니다?.. [2] file HATCHET 2020.02.24 1726 0
37378 담배 12년차... 전담으로 갈아탔습니다ㅋ [7] file 큐레오션 2020.02.23 1568 0
37377 스마트폰 고민 [14] 언사모 2020.02.23 1512 0
37376 사전예약 [2] lucky7 2020.02.23 546 0
37375 에어팟 프로 정품등록중.. 구입일 업데이트? [2] ilene3702 2020.02.23 881 0
37374 근데 아이폰 9 [10] SeJongKing 2020.02.22 1448 0
37373 휴대폰 고민 [10] sunbaro128 2020.02.22 743 0
37372 삼성전자 구미사업장에서 코로나19 확진자 발생...24일 오전까지 폐쇄 [3] 파란기린 2020.02.22 1104 0
37371 아이폰9 유출??? [9] ♥8 2020.02.22 2517 0
37370 재난문자 너무많이 오네요;; [8] NOTE7 2020.02.22 1211 0
37369 3500.. X470.. 등 업그레이드 부품들에 대한 간단한 소감 X-scape 2020.02.22 404 0