압축과 함께 btrfs 루트를 사용하도록 트릭 설치 프로그램


9

Maverick을 BTRFS 루트 파티션에 설치하고 싶습니다. 재미 나 테스트는 아니지만 작은 플래시 디스크 (4GB)로 인해 압축이 필요하기 때문 입니다.

이제 10.10 설치 프로그램은 마침내 btrfs를 지원하지만 그 compress안에 플래그 를 사용할 수있는 방법은 없습니다 . 어떻게 든 설치 관리자를 속일 수 있습니까? 이전 버전과 LUKS를 사용하려면 파티션을 사전 마운트 할 수 있습니다. 또는 btrfs + compress 사전 설치를 활성화 할 수있는 쉬운 monkeypatch가 있습니까?


대체 (텍스트 모드 설치 프로그램) 디스크를 사용해 보셨습니까?
Oli

@Oli : 지금 시도했습니다. -대체 데비안 설치 프로그램이 더 정교합니다. 그러나 표준 파일 시스템 플래그 (noatime, nodev, noexec) 만 나열합니다. compress또는 btrfs 특정 옵션을 설정하지 못하게합니다 ssd. 불운.
마리오

답변:


2

플래시 드라이브에 Linux Mint Debian Edition을 설치하고 get-go에서 압축 된 btrfs를 설치하려고했기 때문에이 스레드를 보았습니다. 이러한 솔루션이 결과에 직접 적용되지는 않았지만이 정보 중 일부를 사용하여 목표에 도달했습니다.

문제는 설치 프로그램이 파티션을 포맷하고 마운트하고 파일을 복사하기 시작하는 시점이 바로 옆에 있다는 것입니다. 그래서 위의 다른 사람들이 언급 한 "재 마운트"옵션을 수행 할 수 없었습니다.

설치 관리자 스크립트의 LMDE 버전은 Python (usr / lib / live-installer / installer.py)에있었습니다. 그것이 우분투와 같은지 확실하지 않지만, 그렇다면 우분투에 직접 적용됩니다. 이를 통해 스크립트를 편집하고 "/"에 대한 파티션을 원래 마운트 한 줄 바로 아래에이 줄을 추가 할 수있었습니다.

os.system("mount -o remount,compress /dev/sda3 /target -t btrfs")

"/ dev / sda3"는 장치에 따라 다릅니다.

나는 이것이 우분투 포럼이라는 것을 알고 있지만 검색과 함께 말한 것처럼 설치 프로그램이 파이썬 기반이라면이 솔루션은 직접적으로 관련이 있습니다. 어쨌든 우리는 모두 데비안입니다!?


10

이를 수행하는 가장 쉬운 방법 mount은 실제 환경 의 명령 을 변경하는 것입니다.

  1. 라이브 세션으로 평소와 같이 부팅합니다.
  2. mount실행 파일을 다른 위치로 이동하십시오 .

    sudo mv /bin/mount /bin/mount.bin
    
  3. sudoedit /bin/mount다음 스크립트를 사용하여 새 파일을 편집하고 파일을 저장하십시오 (원하는대로 옵션을 변경하십시오. 여기에 추가했습니다 compress).

    #!/bin/sh
    if echo "$@" | grep -q -- "-t btrfs"; then
        /bin/mount.bin "$@" -o compress
    else
        /bin/mount.bin "$@"
    fi
    

    다른 장치 및 파일 시스템에 대해 다른 마운트 옵션을 사용하기 위해 및 chain /dev/sda1대신 블록 장치를 일치시킬 수도 있습니다.-t btrfselif

  4. 원래 권한을 새 스크립트로 복사하십시오.

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. 평소와 같이 설치하면 btrfs 파티션이 지정된 옵션 (여기서는 compress) 으로 마운트됩니다 .

  6. 설치가 완료된 후 라이브 환경을 종료하기 전에 /etc/fstab새로 설치된 시스템을 지정된 옵션과 일치하도록 변경하여 새 부트에서 동일한 옵션을 사용하십시오.

내가 사용 : defaults,noatime,compress-force=lzo,space_cache옵션을 장착한다.

이것은 매일 quantal (30/6/12)과 함께 작동합니다.

btrfs 파티션 /과 스왑 파티션을 사용했습니다.

크레딧은 이 게시물 ( 이 글의 스레드 ) 로 이동 하여이 블로그 게시물 을 인용 합니다 .


이 작업을 세 번 수행하는 방법을 잊어 버릴 수 있기를 원합니다.이 작업을 올바르게 수행하는 방법을 세 번째로 잊어 버렸으므로 여전히 집중적으로 인터넷 검색을 할 수 있습니다. 물론 대부분의 지점에서 sudo를 사용해야하지만 경험이 적은 사용자에게는 분명하지 않을 수 있습니다. 너무 멋져요!
DanielSmedegaardBuus

4

설치 프로그램이 파티션을 마운트 한 직후에 셸로 전환하여을 시도하면 작동 할 mount -o remount,compress /target수 있습니다.


작동하는 것 같았습니다! (나는 다른 것을 망쳐 놓았지만 ..) 그러나 mount -o remount,compress,ssd /dev/mapper/target /target -t btrfs소스 장치에 대한 모든 명령 이 필요했습니다 .
mario

가장 훌륭한. 일부 테스트 후, 재 장착 트릭은 완벽하게 작동했습니다. 2.6G 대신 1.2G, 주목할만한 속도 게인.
mario

2

13.04 (Raring Ringtail)부터는 압축없이 btrfs 볼륨에 설치 한 다음 새 설치로 부팅 한 후 전체 볼륨의 모든 파일을 압축 할 수 있습니다.

Oracle의 문서에 따르면 -clzo 옵션으로 조각 모음을 수행하여 기존 파일 시스템의 기존 파일을 압축 할 수 있습니다.

sudo btrfs filesystem defragment -clzo /

단일 슬래시를 전달하면 btrfs가 루트 볼륨의 모든 파일과 디렉토리를 조각 모음하도록 지시합니다.

참조 : http://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

완료되면 / etc / fstab의 볼륨 라인에 compress = lzo (또는 원하는 경우 compress = zlib를 사용하지만 속도는 lzo를 권장)를 추가하고 디스크에 기록 된 추가 파일이 압축되도록 재부팅하십시오.


2

busybox포함하여 대부분의 명령에 최신 배포판이 사용 됩니다 mount. 이 릴리스에서는 /bin/mount에 심볼릭 링크 /bin/busybox와 심볼릭 링크가 있어야 제대로 작동하려면 "mount.bin"을 "마운트"라는 이름, 그리고 될 수있다. 따라서 Mskje의 위 답변을 다음과 같이 변경할 수 있습니다.

  1. 라이브 세션과 동일하게 부팅합니다.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount -새 스크립트가 생성됩니다.
  6. 이것을 스크립트에 복사하고 저장하십시오 (원하는 옵션을 여기에서 압축하십시오).

    #!/bin/sh  
    if echo $@ | grep "btrfs" >/dev/null; then  
        /bin/orig/mount $@ -o compress  
    else  
        /bin/orig/mount $@  
    fi
    
  7. sudo chmod 755 /bin/mount 실행 가능하게 만듭니다.

  8. 정상적으로 설치하면 btrfs 파티션이 지정된 옵션 (여기에서 압축)으로 마운트됩니다.
  9. 설치가 완료된 후 라이브 환경을 종료하기 전에 fstab새로 설치된 시스템을 지정된 옵션과 일치하도록 변경하여 새 부트에서 동일한 옵션을 사용하십시오.

1

수동 선택 : / dev / sda1 / bextfs for / ext ext? / boot 스왑

터미널에서 : sudo bash

설치를 누르십시오

터미널 라인에서 Enter 키를 누릅니다 : (sudo done) mount -t btrfs -o remount, / dev / sda1 / target 압축


1

mkfs.btrfs 명령을 수동으로 실행하여 새로운 멋진 Btrfs 기능을 얻을 수 있습니다 . 대체 설치는 선택의 이전 단계로 돌아가려면 어떤 점에서 옵션이 있습니다. 설치 프로그램이 btrfs를 작성한 후 자신의 btrfs를 작성한 후 이전 단계에서 설치 프로그램을 시작하여 fs가 사용되도록하려면이를 사용하십시오.

  1. 파티션 단계가 끝날 때까지 설치 관리자를 실행하십시오.
  2. 기본 시스템을 설치하십시오.

  3. alt-F2는 터미널로 가서 mkfs.btrfs-/ dev / sdXY를 실행합니다

  4. 설치 프로그램 alt-F1로 돌아갑니다.
  5. "돌아 가기 버튼"을 누르고 파티션 옵션을 다시 선택하십시오. 기본값은 다시 포맷되지 않으므로 계속 진행할 수 있습니다. 기본 시스템이 다시 설치됩니다. 다시 포맷하지 않는다는 경고에 예라고 말합니다.

  6. 즐겨.


1

스틱의 ext4 파티션을 압축 된 btrfs 파티션으로 교체하여 작동했습니다. 다른 컴퓨터를 사용하여 수행 할 수 있습니다.

  1. 통해 모든 것을 복사

    sudo cp -ar / ext4Partition / * / backupspace /
  2. gparted를 btrfs one과 함께 사용하여 partion 교체

  3. sudo mount mount -o compress / dev / yourdevice / btrfsPartition을 사용하여 새 파티션을 마운트하십시오.
  4. 모든 것을 다시 복사

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. / btrfsPartition / etc / fstab을 새 장치 uuid 및 새 파티션 유형으로 업데이트하십시오. btrfs에는 이것이 없으므로 remount Option을 제거하십시오.
  6. 부트 로더 재설치 (예 : BootRepair 를 통해 )

주 : 디렉토리 /btrfsParition, /ext4Partition그리고 /backupspace당신이 원하는대로 설정할 수 있습니다.


0

나중에 압축을 추가 할 수 있습니다. /etc/fstab루트 파일 시스템의 행을 열고 편집하십시오. 다음 compress과 같이 마운트 옵션에 추가하십시오 .

UUID=0c8e6d48-e6b3-425a-ab33-24205a9cb586 / btrfs defaults,compress 0 1

GRUB2가 지원하지 않기 때문에 이제 다시 마운트하거나 재부팅하고 / boot가 btrfs에서 작동하지 않는다는 것을 잊지 마십시오.


2
내가 아는 한, fstab에 압축을 추가해도 기존 파일 에는 영향을 미치지 않습니다 (설치 후에 만 ​​추가하면 이미 4GB SSD의 상당 부분이됩니다!). 라이브 CD를 사용할 때 사전 설치 파티션을 만들고 마운트하는 것이 가장 좋은 방법이라고 생각합니다.
JanC

예, 나중에 옵션을 추가해도 파일이 압축되지 않습니다. 마지막으로 완전한 파일 백업을 수행 한 후 파일 시스템 플래그를 변경 한 후 모든 것을 덮어 썼습니다. 매우 번거 롭습니다. 그리고 tar때로는 일부 파일 속성을 잊어 버렸습니다.
mario

ubuntu-minimal 만 설치하고 나머지는 나중에 설치하면 어떻게 되나요?
mniess

0

당신은 항상 고대 중국 속담을 따를 수있었습니다 :

설치 프로그램 파티션 프로그램의 기능이 마음에 들지 않으면 직접 파티션을 작성하고 설치 프로그램에 해당 파티션에 설치하도록 지시하십시오.


오래된 중국 속담에 누가 질문해야합니까? 그러나 새로운 10.10 설치 프로그램이 마운트 된 / 대상을 존중합니까? 그것이 다시 마운트를 요구한다면, 나의 소중한 수동 파티션은 모두 헛된 것입니다.
mario

통과하다. 여전히 ISO를 가지고 있다면 VirtualBox에서 ISO를 테스트 해 보았지만 대체 설치 프로그램을 사용하면 운이 좋을 것입니다. (사용자 간섭에 더 잘 반응하는 경향이 있습니다)
Oli

그냥 또 다른 소용돌이를 주었다. 두 인스톨러 모두 꽤 행복합니다. 수동 파티션은 여전히 ​​LUKS에 대한 솔루션이지만 btrfs에 대해서는 수동 마운트 옵션이 지속되지 않습니다. 대체 설치 마법사는 일반적으로 비표준 옵션에 만족스럽지 않지만 최소한 무슨 일이 일어나고 있는지 알 수 있습니다. 데스크탑 설치 프로그램은 대상을 두세 번 마운트 해제합니다.
mario
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.