Thủ thuật cài đặt để sử dụng root btrfs với nén


9

Tôi muốn cài đặt Maverick lên phân vùng gốc BTRFS. Không phải để giải trí hay thử nghiệm, mà vì tôi cần nén do một đĩa flash nhỏ (4GB).

Bây giờ trình cài đặt 10.10 cuối cùng cũng hỗ trợ btrfs, nhưng không có cách nào để bật compresscờ trong đó. Tôi có thể lừa trình cài đặt bằng cách nào đó? Đối với các phiên bản cũ và nhận LUKS, bạn có thể cài đặt sẵn các phân vùng. Hoặc có một con khỉ dễ dàng có thể để kích hoạt btrfs + nén cài đặt trước?


Bạn đã thử đĩa thay thế (trình cài đặt chế độ văn bản) chưa?
Oli

@Oli: Chỉ cần thử nó ngay bây giờ. Trình cài đặt Debian -alternate phức tạp hơn. Nhưng nó chỉ liệt kê các cờ hệ thống tập tin tiêu chuẩn (noatime, gật đầu, noexec). Nó ngăn chặn thiết lập các tùy chọn cụ thể btrfs như compresshoặc ssd. Không may mắn.
mario

Câu trả lời:


2

Tôi đã bắt gặp chủ đề này vì tôi đang tìm cách cài đặt Linux Mint Debian Edition trên ổ đĩa flash và cài đặt trên các btrfs nén từ lúc khởi hành. Mặc dù các giải pháp này không thể áp dụng trực tiếp để đạt được kết quả của tôi, tôi đã sử dụng một số thông tin này để đạt được mục tiêu của mình.

Vấn đề là điểm định dạng của trình cài đặt và gắn phân vùng và bắt đầu sao chép các tệp nằm ngay cạnh nhau, vì vậy tôi không thể thực hiện tùy chọn "remount" được đề cập bởi những người khác ở trên.

Phiên bản LMDE của tập lệnh trình cài đặt là python (usr / lib / live-Installer / Installer.py). Tôi không chắc nó có giống với Ubuntu không, nhưng nếu có, điều này sẽ được áp dụng trực tiếp. Điều này cho phép tôi chỉnh sửa tập lệnh và thêm dòng này ngay dưới dòng được gắn phân vùng theo nguyên tắc cho "/"

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

của sân, "/ dev / sda3" sẽ thay đổi tùy theo thiết bị của bạn.

Tôi hiểu đây là một diễn đàn Ubuntu, nhưng như tôi đã nói, nó đã đưa ra tìm kiếm và giải pháp này sẽ liên quan trực tiếp nếu trình cài đặt dựa trên python. Chúng ta đều là Debian ở đây, phải không!?


10

Một cách dễ dàng hơn để làm điều này là thay đổi mountlệnh của môi trường sống.

  1. Khởi động như bình thường cho phiên trực tiếp.
  2. Di chuyển mountthực thi đến một vị trí khác:

    sudo mv /bin/mount /bin/mount.bin
    
  3. Chỉnh sửa một tệp mới bằng cách sử dụng sudoedit /bin/mountvà lưu tập lệnh sau vào nó (thay đổi các tùy chọn như bạn muốn; ở đây chúng tôi đã thêm compress):

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

    Bạn cũng có thể kết hợp các thiết bị khối như /dev/sda1thay vì -t btrfsvà chuỗi elifs để sử dụng các tùy chọn gắn khác nhau cho các thiết bị và hệ thống tệp khác nhau.

  4. Sao chép các quyền ban đầu sang tập lệnh mới:

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Cài đặt như bình thường và phân vùng btrfs của bạn sẽ được gắn với các tùy chọn đã chỉ định (tại đây, compress).

  6. Sau khi cài đặt kết thúc, trước khi thoát khỏi môi trường trực tiếp, hãy thay đổi /etc/fstabhệ thống mới được cài đặt để phù hợp với các tùy chọn đã chỉ định, do đó, nó sẽ sử dụng các tùy chọn tương tự trên giày mới.

Tôi đã sử dụng: defaults,noatime,compress-force=lzo,space_cachenhư tùy chọn gắn kết.

Điều này hoạt động với số lượng hàng ngày (30/6/12).

Tôi đã sử dụng phân vùng btrfs như /và một phân vùng trao đổi.

Tín dụng đi đến bài đăng này (trong chủ đề này ), lần lượt trích dẫn bài đăng blog này .


Tôi ước tôi có thể tăng gấp ba lần điều này, bởi vì đây là lần thứ ba tôi quên làm thế nào để làm điều này đúng cách, và đây vẫn là nơi tôi cuối cùng googling cho nó mạnh mẽ. Mặc dù bạn cần sử dụng sudo trên hầu hết các điểm, tất nhiên, điều này có thể không rõ ràng đối với người dùng ít kinh nghiệm. Thật tuyệt!
DanielSmedegaardBuus

4

Ngay sau khi trình cài đặt gắn kết phân vùng của bạn, bạn có thể thử chuyển sang trình bao và thực hiện mount -o remount,compress /target, việc này có thể hoạt động.


Điều đó dường như làm việc! (Mặc dù tôi đã làm hỏng thứ gì đó khác ..) Nhưng nó yêu cầu toàn bộ lệnh mount -o remount,compress,ssd /dev/mapper/target /target -t btrfsvới thiết bị nguồn.
mario

Xuất sắc nhất. Sau một số thử nghiệm, thủ thuật remount hoạt động hoàn hảo. 1.2G thay vì 2.6G được sử dụng, tốc độ tăng đáng chú ý.
mario

2

Kể từ ngày 13.04 (Rared Ringtail), bạn sẽ có thể cài đặt trên một khối lượng btrfs mà không cần nén và sau đó nén mọi tệp trên toàn bộ ổ đĩa sau khi bạn khởi động cài đặt mới.

Theo tài liệu của Oracle, bạn có thể nén các tệp hiện có trên một hệ thống tệp hiện có bằng cách chống phân mảnh nó bằng tùy chọn -clzo.

sudo btrfs filesystem defragment -clzo /

Vượt qua nó, dấu gạch chéo duy nhất cho btrfs phân mảnh tất cả các tệp và thư mục trên ổ đĩa gốc của bạn.

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

Khi bạn đã hoàn tất, hãy thêm nén = lzo (hoặc nén = zlib nếu bạn muốn, nhưng lzo được khuyến nghị cho tốc độ) vào dòng của âm lượng của bạn trong / etc / fstab và khởi động lại để bất kỳ tệp nào được ghi vào đĩa sẽ được nén.


2

Các bản phân phối gần đây hơn sử dụng busyboxcho hầu hết các lệnh, bao gồm mount. Trong các bản phát hành này, /bin/mountlà một liên kết tượng trưng /bin/busyboxvà liên kết tượng trưng phải được đặt tên là "mount" chứ không phải "mount.bin" để hoạt động chính xác. Như vậy, câu trả lời trên của Mskje có thể được thay đổi thành như sau:

  1. Khởi động như bình thường cho phiên trực tiếp.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - điều này sẽ tạo ra một kịch bản mới.
  6. Sao chép tập lệnh này vào tập lệnh và lưu (thay đổi các tùy chọn theo ý muốn, ở đây nén):

    #!/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 để làm cho nó thực thi.

  8. Cài đặt như bình thường và phân vùng btrfs của bạn sẽ được gắn với các tùy chọn đã chỉ định (ở đây nén).
  9. Sau khi cài đặt kết thúc, trước khi thoát khỏi môi trường trực tiếp, hãy thay đổi fstabhệ thống mới được cài đặt để phù hợp với các tùy chọn đã chỉ định, do đó, nó sẽ sử dụng các tùy chọn tương tự trên giày mới.

1

Chọn thủ công: / dev / sda1 làm btrfs cho / some ext? / khởi động một số trao đổi

Trong một thiết bị đầu cuối: sudo bash

Nhấn cài đặt

Nhấn enter trên dòng thiết bị đầu cuối: (sudo xong) mount -t btrfs -o remount, nén / dev / sda1 / target


1

Bạn có thể nhận được bất kỳ hoặc tất cả các tính năng Btrfs mới thú vị bằng cách chạy lệnh mkfs.btrfs bằng tay . Trình cài đặt thay thế có một tùy chọn tại bất kỳ thời điểm nào để quay lại bước trước bạn chọn. bạn có thể sử dụng điều này để, sau khi trình cài đặt tạo btrfs, tạo btrfs của riêng bạn và sau đó khởi động trình cài đặt ở bước trước để fs của bạn được sử dụng.

  1. chạy trình cài đặt cho đến sau giai đoạn phân vùng.
  2. Hãy để nó cài đặt hệ thống cơ sở.

  3. alt-F2 đi đến thiết bị đầu cuối và chạy mkfs.btrfs - / dev / sdXY

  4. quay lại trình cài đặt alt-F1
  5. nhấn "nút quay lại" sau đó chọn tùy chọn phân vùng một lần nữa. mặc định sẽ không định dạng lại để bạn có thể nhấn tiếp tục. nó sẽ cài đặt lại hệ thống cơ sở. nói có với cảnh báo về việc không định dạng lại.

  6. thưởng thức.


1

Tôi đã làm cho nó hoạt động bằng cách thay thế phân vùng ext4 trên thanh bằng phân vùng btrfs nén. Điều này có thể được thực hiện bằng cách sử dụng máy tính khác.

  1. Sao chép mọi thứ qua

    sudo cp -ar / ext4Partition / * / backupspace /
  2. Thay thế partion bằng gparted bằng btrfs one

  3. Gắn kết phần mới bằng cách sử dụng sudo mount mount -o nén / dev / yourdevice / btrfsPartition
  4. Sao chép lại mọi thứ

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Cập nhật / btrfsPartition / etc / fstab lên uuids thiết bị mới và loại phân vùng mới. Xóa tùy chọn remount, vì btrfs không có điều này.
  6. cài đặt lại bộ tải khởi động (ví dụ thông qua BootRepair )

Lưu ý: các thư mục /btrfsParition, /ext4Partition/backupspacecó thể được thiết lập như bạn muốn.


0

Bạn chỉ có thể thêm nén sau. Mở /etc/fstabvà chỉnh sửa dòng cho hệ thống tập tin gốc của bạn. Thêm compressvào các tùy chọn gắn kết như thế này:

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

Bây giờ, kể lại hoặc khởi động lại và đừng quên rằng / boot không thể tồn tại trên btrfs, vì GRUB2 không hỗ trợ nó.


2
Theo tôi biết, việc thêm nén trong fstab không ảnh hưởng đến các tệp hiện có (đây sẽ là một phần lớn của SSD 4 GB đó khi bạn chỉ thêm nó sau khi cài đặt!). Tôi nghĩ rằng việc tạo và gắn các phân vùng cài đặt sẵn là lựa chọn tốt nhất khi sử dụng CD trực tiếp.
JanC

Có, thêm tùy chọn sau không nén các tệp. Lần trước tôi đã thực hiện sao lưu tệp hoàn chỉnh, sau đó thay đổi các cờ hệ thống tệp và sau đó ghi đè lên mọi thứ. Rất cồng kềnh. Và tarđôi khi chỉ cần quên một vài thuộc tính tệp, không chắc là tôi đã sử dụng pax hay rsync thay thế.
mario

Điều gì sẽ xảy ra nếu bạn chỉ cài đặt tối thiểu Ubuntu và cài đặt phần còn lại sau?
mniess

0

Bạn luôn có thể làm theo câu tục ngữ Trung Quốc cổ đại:

Nếu bạn không thích những gì trình phân vùng trình cài đặt làm, hãy tự phân vùng nó và yêu cầu trình cài đặt cài đặt vào các phân vùng đó.


Tôi là ai để hỏi câu tục ngữ Trung Quốc cũ? Nhưng trình cài đặt 10.10 mới có tôn vinh một mục tiêu được gắn kết không? Nếu nó khăng khăng đòi kể lại, tất cả phân vùng thủ công quý giá của tôi sẽ là vô ích.
mario

Vượt qua. Nếu tôi vẫn còn ISO, tôi sẽ thử nghiệm nó trong VirtualBox nhưng một lần nữa, tôi nghĩ có lẽ bạn sẽ gặp may mắn hơn với trình cài đặt thay thế (nó có xu hướng phản ứng tốt hơn với sự can thiệp của người dùng)
Oli

Chỉ cần cho nó một cơn lốc khác. Cả hai trình cài đặt là khá hạnh phúc. Phân vùng thủ công vẫn là một giải pháp cho LUKS, nhưng các tùy chọn gắn thủ công không tồn tại cho btrfs. Trình hướng dẫn cài đặt thay thế có vẻ ít hài lòng hơn với các tùy chọn không chuẩn, nhưng ít nhất bạn có thể thấy những gì đang diễn ra. Trình cài đặt máy tính để bàn ngắt kết nối mục tiêu hai hoặc ba lần.
mario
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.