F2FS (한국어)
F2FS (Flash-Friendly File System) 는 플래시 변환 레이어 (Flash Translation Layer:FTL) 를 탑재한 낸드 플래시 메모리용으로 설계된 파일 시스템이다. JFFS나 UBIFS와 달리 F2FS는 쓰기 작업 분배를 위해 FTL에 의존한다. 리눅스 커널 3.8 이후로 지원되고 있다.
FTL은 기초적인 낸드 플래시와 스마트미디어카드와 달리 SCSI/SATA/PCIe/NVMe 인터페이스를 사용하는 모든 플래시 메모리에서 사용된다 [1][2].
알려진 문제들
fsck 복구 실패
F2FS는 순간적인 정전 시 데이터 손상으로 이어질 수도 있는 별로 좋지 못한 fsck 복구툴을 가지고 있다 [3][4].
만약 정전 내지 전력 손실이 자주 발생하는 환경이라면, 대안 파일 시스템을 고려하라.
GRUB 지원
GRUB 자체는 버전 2.0.4 이후로 F2FS를 지원하지만, extra_attr
플래그가 활성화된 상태로 생성된 F2FS 파티션에서는 자신의 부트 파일들을 정확히 읽지 못한다 [7].
F2FS 포맷 파티션 생성
F2FS 파티션을 만들기 위해서는 공식 저장소에서 f2fs-tools를 설치한다.
mkfs.f2fs
를 사용한 파티션 생성:
# mkfs.f2fs -l mylabel -O extra_attr,inode_checksum,sb_checksum /dev/sdxY
/dev/sdxY
부분에는 F2FS으로 포맷할 볼륨명을 넣는다.
f2fs.fsck
가 몇몇 종류의 파일 시스템 손상을 감지하고 수정하는 데 도움을 주는 최소 권장 플래그입니다. mkfs.f2fs(8)를 참고하여 더 많은 플래그들을 살펴보아라.F2FS 파티션 마운트하기
마운트 전에 사용자가 수동으로 F2FS 커널 모듈을 로드해야 한다. root 권한으로 다음 명령어를 실행한다:
# modprobe f2fs
커널 모듈 로드 후, 다음과 같이 마운트를 할 수 있다.
# mount -t f2fs /dev/sdxY /mnt
F2FS 파티션에 아치리눅스 설치하기
최신 설치 미디어 파일로써 F2FS 파티션에 루트가 설정된 아치리눅스를 설치할 수 있다.
- #F2FS 포맷 파티션 생성에서 기술된 것을 참고하여 F2FS로 루트 파티션을 제작한다.
- ext2 포맷 또는 다른 부트로더가 지원하는 파일시스템으로
/boot
파티션을 생성한다. - chrooted 전까지 Installation guide#Mount the file systems에서의 설치 과정을 따른다.
- f2fs-tools를 설치한다.
- chroot 상태에서 initramfs를 다시 생성한다.
부팅 과정에서 CRC32 모듈 로드에 실패하는 경우는 약간의 작업이 필요하다. 4.6 버전의 커널에 포함된 드라이버는 CRC32를 위해 Crypto API를 사용하므로 crc32_generic
와 crc32-pclmul
를 /etc/mkinitcpio.conf
의 MODULES
에 추가한 뒤 initramfs를 재생성한다.
부팅 과정에서 파티션을 찾지 못한다면 다른 디스크로 부팅 한 후 /boot/grub/grub.cfg
를 열어 root=/dev/sdXx
등으로 표기된 파티션 명을 blkid /dev/sdXx
를 입력하여 나온 UUID를 가져와 root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
꼴로 변경하면 된다. Persistent block device naming 를 참조할 수 있다.