네, 가능해요

네, 가능해요

Dropbox는 Linux 클라이언트가 앞으로 ext4만 지원할 것이라고 방금 발표했습니다. 저는 현재 btrfs 파티션에서 Dropbox를 아무런 문제 없이 사용하고 있습니다. 분명히 xattr 지원은 필수적입니다. ext4와 btrfs 모두 이를 지원합니다. 사실 저는 btrfs가 지원하지 않는 ext4 기능을 알지 못합니다.

Dropbox가 어떻게 파일 시스템을 감지하려고 하는지는 모르겠지만 btrfs를 ext4인 것처럼 가장할 수 있는 방법이 있나요?

답변1

아마도 커널을 수정하지 않고는 아닐 것입니다. 그럼에도 불구하고 파일 시스템이 btrfs가 아니라고 생각하면 btrfs 도구가 작동을 거부할 수 있으므로 이는 아마도 좋은 생각이 아닐 것입니다.

질문에 대답하지 않으면 Dropbox가 이를 지원하지 않습니까? 아니면 프로그램이 다른 파일 시스템에서 실행되는 것을 적극적으로 방지합니까? 후자의 경우 파일 시스템을 탐지하는 방법은 여러 가지가 있지만 모두 속일 수는 없습니다.

답변2

이 문제를 해결하는 가장 쉬운 방법은 아마도 Btrfs 파일 시스템에 ext4 루프백 이미지를 생성한 다음 이를 임시 위치에 마운트하고 Dropbox와 동기화된 파일을 해당 파일 시스템으로 옮긴 다음 다시 마운트하는 것입니다. Dropbox 동기화.

이렇게 하면 Dropbox가 계속 정상적으로 실행되지만 전체 파일 시스템을 교체할 필요는 없습니다. 루프백 이미지 등의 스냅샷을 찍을 수 있다는 점에서 Btrfs의 일부 이점을 여전히 얻을 수 있습니다.

답변3

btrfs에서 ext4 파일을 생성하고 이미지를 저장할 디렉터리로 이동하는 방법은 다음과 같습니다.

truncate -s 100G dropbox.img
chown root:root dropbox.img
chmod 600 dropbox.img
mkfs.ext4 -j dropbox.img
mkdir /opt/dropbox
mount -t ext4 -o loop {path}/dropbox.img /opt/dropbox
chmod 777 /opt/dropbox
umount /opt/dropbox

이제 편집 /etc/fstab하고 추가하세요.

{path}/dropbox.img      /opt/dropbox            ext4    loop            0 0

이제 이렇게 하면 mount -abtrfs에 영구 ext4 파일 시스템이 있게 됩니다.


파일이 일반 파일 대신 파일 시스템에서 "씬 프로비저닝"(스파스 파일)되기 때문에 선택 truncate하지 않았습니다 . 이는 100GB가 즉시 소모되지 않고 시간이 지남에 따라 Dropbox가 읽고 쓰면서 천천히 시간 초과된다는 의미입니다.fallocatedropbox.img

답변4

네, 가능해요

그리고 다른 답변에서 제안한 것처럼 커널 수정이 필요하지 않습니다. 이는 Dropbox가 좋아하지 않는 ext3 루트 파일 시스템이 있을 때 사용하는 솔루션입니다. Dropbox가 사용 중인 파일 시스템을 감지하는 방법은 /etc/mtab 파일을 이용하는 것입니다. 이 파일은 현재 설치된 파일 시스템을 추적하지만 대부분 다른 UNIX 시스템의 레거시입니다. 특정 수정은 문제를 일으키지 않고 안전하게 이루어질 수 있습니다. 이 경우 보고하는 파일 시스템 유형을 변경하십시오. 이러한 콘텐츠는 Dropbox와 같은 사용자 공간 프로그램에 편리하지만 정상적인 작동을 위해 커널에 필요하지 않습니다.

먼저 /etc/mtab이 일반 텍스트 파일인지 확인하세요. 많은 최신 Linux 시스템에서 이는 /proc/self/mounts에 대한 수정 불가능한 심볼릭 링크입니다. 이 경우 링크를 파일 사본으로 바꾸십시오.

rm /etc/mtab
cp /proc/self/mounts /etc/mtab

그런 다음 파일을 수정하여 파일 형식(세 번째 열에 표시됨)을 ext4로 변경하면 Dropbox가 이를 사실로 인식하게 됩니다.

sed 's/\<btrfs\>/ext4/' /etc/mtab

이제 아무런 불만 없이 Dropbox를 시작할 수 있습니다. 이 프로세스는 부팅할 때마다 반복되어야 하므로 로그인 후 실행되는 스크립트에 's/<btrfs>/ext4/' /etc/mtab을 모두 sed했습니다.

cat <<EOF >fix-mtab.sh
#!/bin/sh

sudo rm /etc/mtab
sudo cp /proc/self/mounts /etc/mtab
sudo sed 's/\<btrfs\>/ext4/' /etc/mtab
EOF
chmod +x fix-mtab.sh
./fix-mtab.sh

관련 정보