Trick installer untuk menggunakan btrfs root dengan kompresi


9

Saya ingin menginstal Maverick ke partisi root BTRFS. Bukan untuk bersenang-senang atau pengujian, tetapi karena saya perlu kompresi karena flash disk kecil (4GB).

Sekarang pemasang 10.10 akhirnya mendukung btrfs, tetapi tidak ada cara untuk mengaktifkan compressflag di dalamnya. Bisakah saya menipu installer? Untuk versi lama dan mendapatkan LUKS Anda bisa melakukan pre-mount partisi. Atau adakah monkeypatch mudah untuk mengaktifkan btrfs + kompres pra instal?


Sudahkah Anda mencoba disk alternatif (pemasang mode teks)?
Oli

@Oli: Coba saja sekarang. Installer -alternate Debian lebih rumit. Tetapi hanya mencantumkan flag sistem file standar (noatime, nodev, noexec). Ini mencegah pengaturan opsi spesifik btrf seperti compressatau ssd. Tidak berhasil
mario

Jawaban:


2

Saya menemukan utas ini karena saya ingin menginstal Linux Mint Debian Edition pada flash drive dan menginstal pada btrf terkompresi dari awal. Meskipun solusi ini tidak langsung dapat diterapkan untuk mencapai hasil saya, saya menggunakan beberapa informasi ini untuk mencapai target saya.

Masalahnya adalah bahwa titik installer memformat dan me-mount partisi dan mulai menyalin file tepat di sebelah satu sama lain, karena itu saya tidak dapat melakukan opsi "remount" yang disebutkan oleh orang lain di atas.

Versi LMDE dari skrip pemasang menggunakan python (usr / lib / live-installer / installer.py). Saya tidak yakin apakah itu sama dengan Ubuntu, tetapi jika ya, ini akan langsung berlaku. Ini memungkinkan saya untuk mengedit skrip dan menambahkan baris ini tepat di bawah baris yang awalnya me-mount partisi untuk "/"

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

of coures "/ dev / sda3" akan bervariasi tergantung pada perangkat Anda.

Saya mengerti ini adalah forum Ubuntu, tetapi seperti saya katakan, ini muncul dengan pencarian dan solusi ini akan relevan secara langsung jika installernya berbasis python. Bagaimanapun, kita semua Debian, kan !?


10

Cara yang lebih mudah untuk melakukan ini adalah dengan mengubah mountperintah lingkungan hidup.

  1. Boot seperti biasa ke sesi langsung.
  2. Pindahkan yang mountdapat dieksekusi ke lokasi lain:

    sudo mv /bin/mount /bin/mount.bin
    
  3. Edit file baru menggunakan sudoedit /bin/mountdan simpan skrip berikut ke dalamnya (ubah opsi sesuai keinginan; di sini kami telah menambahkan compress):

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

    Anda juga dapat mencocokkan perangkat blok seperti /dev/sda1bukan -t btrfsdan rantai elifuntuk menggunakan opsi pemasangan berbeda untuk perangkat dan sistem file yang berbeda.

  4. Salin izin asli ke skrip baru:

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Instal seperti biasa dan partisi btrf Anda akan di-mount dengan opsi yang ditentukan (di sini, compress).

  6. Setelah instalasi selesai, sebelum keluar dari envirement langsung, ubah sistem /etc/fstabyang baru diinstal untuk mencocokkan pilihan yang ditentukan, sehingga akan menggunakan opsi yang sama pada boot baru.

Saya menggunakan: defaults,noatime,compress-force=lzo,space_cachesebagai opsi mount.

Ini bekerja dengan harian kuantal (30/6/12).

Saya menggunakan partisi btrfs sebagai /dan partisi swap.

Kredit pergi ke posting ini (di utas ini ), yang pada gilirannya mengutip posting blog ini .


Saya berharap saya bisa triple-upvote ini, karena sekarang ini ketiga kalinya saya lupa bagaimana melakukan ini dengan benar, dan ini masih di mana saya akhirnya googling untuk itu secara intensif. Meskipun Anda perlu menggunakan sudo pada sebagian besar poin, tentu saja, yang mungkin tidak jelas bagi pengguna yang kurang berpengalaman. Keren abis!
DanielSmedegaardBuus

4

Tepat setelah installer memasang partisi Anda, Anda dapat mencoba untuk beralih ke shell dan melakukan mount -o remount,compress /target, ini mungkin berhasil.


Itu sepertinya berhasil! (Meskipun saya mengacaukan sesuatu yang lain ..) Tapi itu membutuhkan perintah penuh mount -o remount,compress,ssd /dev/mapper/target /target -t btrfsdengan perangkat sumber.
mario

Paling bagus. Setelah beberapa pengujian, trik remount bekerja dengan sempurna. 1.2G bukannya 2.6G digunakan, peningkatan kecepatan yang terlihat.
mario

2

Pada 13,04 (Raring Ringtail), Anda harus dapat menginstal pada volume btrfs tanpa kompresi dan kemudian kompres setiap file pada seluruh volume setelah Anda boot ke instalasi baru.

Menurut dokumentasi Oracle, Anda dapat mengompres file yang ada pada sistem file yang ada dengan defragmenting dengan opsi -clzo.

sudo btrfs filesystem defragment -clzo /

Melewati slash tunggal memberitahu btrfs untuk mendefrag semua file dan direktori pada volume root Anda.

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

Setelah selesai, tambahkan kompres = lzo (atau kompres = zlib jika Anda suka, tetapi lzo direkomendasikan untuk kecepatan) ke baris volume Anda di / etc / fstab dan reboot sehingga file lebih lanjut yang ditulis ke disk akan dikompresi.


2

Lebih banyak distribusi terbaru digunakan busyboxuntuk sebagian besar perintah, termasuk mount. Dalam rilis ini, /bin/mountadalah symlink ke /bin/busyboxdan symlink harus dinamai "mount", dan bukan "mount.bin" agar dapat bekerja dengan benar. Dengan demikian, jawaban di atas oleh Mskje dapat diubah menjadi yang berikut:

  1. Boot seperti biasa ke sesi langsung.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - ini akan membuat skrip baru.
  6. Salin ini ke skrip dan simpan (ubah opsi sesuai keinginan, kompres di sini):

    #!/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 untuk membuatnya dieksekusi.

  8. Instal seperti biasa dan partisi btrf Anda akan dipasang dengan opsi yang ditentukan (di sini kompres).
  9. Setelah instalasi selesai, sebelum keluar dari envirement langsung, ubah sistem fstabyang baru diinstal untuk mencocokkan pilihan yang ditentukan, sehingga akan menggunakan opsi yang sama pada boot baru.

1

Memilih secara manual: / dev / sda1 sebagai btrfs untuk / beberapa ext? / boot beberapa swap

Di terminal: sudo bash

Tekan instal

Tekan enter pada baris terminal: (sudo selesai) mount -t btrfs -o remount, kompres / dev / sda1 / target


1

Anda bisa mendapatkan salah satu atau semua fitur Btrfs baru yang keren dengan menjalankan perintah mkfs.btrfs secara manual . The installer alternatif memiliki opsi pada setiap titik untuk kembali ke langkah sebelumnya pilihan Anda. Anda dapat menggunakan ini untuk, setelah installer membuat btrfs, buat btrf Anda sendiri dan kemudian mulai installer pada langkah sebelumnya sehingga fs Anda terbiasa.

  1. jalankan penginstal hingga setelah fase partisi.
  2. biarkan menginstal sistem dasar.

  3. alt-F2 pergi ke terminal dan jalankan mkfs.btrfs - / dev / sdXY

  4. kembali ke penginstal alt-F1
  5. tekan tombol "kembali" lalu pilih opsi partisi lagi. standarnya adalah untuk tidak memformat ulang sehingga Anda bisa menekan terus. itu akan menginstal ulang sistem dasar. katakan ya untuk peringatan tentang tidak memformat ulang.

  6. Nikmati.


1

Saya berhasil dengan mengganti partisi ext4 pada tongkat dengan partisi btrf terkompresi. Ini dapat dilakukan dengan menggunakan komputer lain.

  1. Menyalin semuanya melalui

    sudo cp -ar / ext4Partition / * / backupspace /
  2. Ganti partion menggunakan gparted dengan btrfs one

  3. Mount partion baru menggunakan sudo mount mount -o kompres / dev / yourdevice / btrfsPartition
  4. Salin kembali semuanya

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Perbarui / btrfsPartition / etc / fstab ke uuids perangkat baru dan ke tipe partisi baru. Hapus Opsi remount, karena btrfs tidak memilikinya.
  6. instal ulang boot loader (mis. via BootRepair )

Catatan: direktori /btrfsParition, /ext4Partitiondan /backupspacedapat diatur sesuai keinginan.


0

Anda bisa menambahkan kompresi nanti. Buka /etc/fstabdan edit baris untuk sistem file root Anda. Tambahkan compresske opsi-mount seperti ini:

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

Sekarang remount atau reboot dan jangan lupa bahwa / boot tidak dapat hidup di btrfs, karena GRUB2 tidak mendukungnya.


2
Sejauh yang saya tahu, menambahkan kompres di fstab tidak berpengaruh pada file yang ada (yang akan menjadi bagian besar dari SSD 4 GB itu ketika Anda hanya menambahkannya setelah menginstal!). Saya pikir membuat & memasang partisi pra-instal adalah pilihan terbaik saat menggunakan live-CD.
JanC

Ya, menambahkan opsi nanti tidak memampatkan file. Terakhir kali saya melakukan backup file lengkap, kemudian mengubah flag filesystem, dan kemudian menimpa semuanya. Sangat merepotkan. Dan hanya saja tarkadang - kadang lupa beberapa atribut file, tidak yakin apakah saya menggunakan pax atau rsync sebagai pengganti.
mario

Bagaimana jika Anda hanya menginstal ubuntu-minimal dan menginstal sisanya nanti?
mniess

0

Anda selalu bisa mengikuti pepatah Tiongkok kuno:

Jika Anda tidak menyukai apa yang dilakukan partisi installer, partisi sendiri dan beri tahu installer untuk menginstal ke partisi tersebut.


Siapa saya untuk mempertanyakan peribahasa Cina kuno? Tetapi apakah pemasang 10.10 yang baru menghormati / target yang dipasang? Jika bersikeras remounting, semua partisi manual berharga saya akan sia-sia.
mario

Lulus. Jika saya masih memiliki ISO, saya akan mengujinya di VirtualBox tapi sekali lagi, saya pikir Anda mungkin akan lebih beruntung dengan installer alternatif (cenderung bereaksi lebih baik terhadap campur tangan pengguna)
Oli

Beri saja pusaran lagi. Kedua penginstal cukup tidak senang. Pemartisian manual masih merupakan solusi untuk LUKS, tetapi opsi pemasangan manual tidak bertahan untuk btrfs. Panduan pemasangan alternatif tampaknya secara umum kurang puas dengan opsi yang tidak standar, tetapi setidaknya Anda dapat melihat apa yang terjadi. Pemasang desktop melepas kaitan target dua atau tiga kali.
mario
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.