MaverickをBTRFSルートパーティションにインストールしたい。楽しみやテスト用ではありませんが、小さいフラッシュディスク(4GB)が原因で圧縮が必要だからです。
10.10インストーラーがついにbtrfsをサポートするようになりましたが、compress
フラグを有効にする方法はありません。インストーラーを何とかしてだますことができますか?古いバージョンでLUKSを取得する場合は、パーティションを事前にマウントできます。または、btrfs + compress pre installを有効にする簡単なmonkeypatchがありますか?
Linux Mint Debian Editionをフラッシュドライブにインストールし、圧縮されたbtrfsにget-goからインストールしようとしたため、このスレッドに出会いました。これらの解決策は私の結果を達成するために直接適用できませんでしたが、この情報のいくつかを使用して目標を達成しました。
問題は、インストーラーがパーティションをフォーマットしてマウントし、ファイルのコピーを開始するポイントが互いに隣り合っているため、上記の「リマウント」オプションを実行できなかったことです。
インストーラースクリプトのLMDEバージョンはpython(usr/lib/live-installer/installer.py)にありました。 Ubuntuと同じかどうかはわかりませんが、同じ場合は直接適用できます。これにより、スクリプトを編集し、「/」のパーティションを元々マウントした行のすぐ下にこの行を追加できました
os.system("mount -o remount,compress /dev/sda3 /target -t btrfs")
もちろん、「/ dev/sda3」はデバイスによって異なります。
私はこれがUbuntuフォーラムであることを理解していますが、私が言ったように検索を思いついたので、インストーラーがpythonベースである場合、このソリューションは直接関連します。とにかく私たちは皆ここにDebianです!?
これを行う簡単な方法は、ライブ環境のmount
コマンドを変更することです。
mount
実行可能ファイルを別の場所に移動します。
Sudo mv /bin/mount /bin/mount.bin
sudoedit /bin/mount
を使用して新しいファイルを編集し、次のスクリプトをその中に保存します(必要に応じてオプションを変更します。ここではcompress
を追加しました)。
#!/bin/sh
if echo "$@" | grep -q -- "-t btrfs"; then
/bin/mount.bin "$@" -o compress
else
/bin/mount.bin "$@"
fi
また、/dev/sda1
の代わりに-t btrfs
やElif
sのようなブロックデバイスを一致させて、デバイスやファイルシステムごとに異なるマウントオプションを使用することもできます。
元のアクセス許可を新しいスクリプトにコピーします。
Sudo chmod --reference=/bin/mount.bin /bin/mount
通常どおりインストールすると、指定したオプション(ここでは、compress
)でbtrfsパーティションがマウントされます。
/etc/fstab
を指定されたオプションに一致するように変更し、新しいブートで同じオプションを使用します。defaults,noatime,compress-force=lzo,space_cache
をマウントオプションとして使用しました。
これは、毎日quantal(30/6/12)で機能します。
/
およびスワップパーティションとしてbtrfsパーティションを使用しました。
クレジットは this post (in this thread )に移動し、これは this blog post を引用しています。
インストーラーがパーティションをマウントした直後に、シェルに切り替えてmount -o remount,compress /target
を実行しようとすることができますが、これは機能する可能性があります。
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をお勧めします)を追加し、再起動してディスクに書き込まれたファイルを圧縮します。
最近のディストリビューションでは、busybox
を含むほとんどのコマンドにmount
を使用しています。これらのリリースでは、/bin/mount
は/bin/busybox
へのシンボリックリンクであり、シンボリックリンクmustは、正しく機能するために「mount.bin」ではなく「mount」という名前になります。そのため、Mskjeによる上記の回答は、次のように変更できます。
Sudo rm /bin/mount
Sudo mkdir /bin/orig
Sudo ln -s /bin/busybox /bin/orig/mount
Sudo nano /bin/mount
-これにより、新しいスクリプトが作成されます。これをスクリプトにコピーして保存します(必要に応じてオプションを変更し、ここで圧縮します)。
#!/bin/sh
if echo $@ | grep "btrfs" >/dev/null; then
/bin/orig/mount $@ -o compress
else
/bin/orig/mount $@
fi
Sudo chmod 755 /bin/mount
で実行可能にします。
fstab
を指定されたオプションに一致するように変更し、新しいブートで同じオプションを使用します。手動で選択する:/ dev/sda1をbtrfsとして/ some ext?/bootスワップ
ターミナル内:Sudo bash
プレスインストール
端末行でEnterキーを押します。(Sudo done)mount -t btrfs -o remount、compress/dev/sda1/target
スティック上のext4パーティションを圧縮されたbtrfsパーティションに置き換えることで機能しました。これは別のコンピューターを使用して実行できます。
経由ですべてをコピーする
Sudo cp -ar/ext4Partition/*/backupspace /
Gpartedを使用してパーティションをbtrfs oneに置き換えます
すべてをコピーバック
Sudo cp -ar/backupspace/*/btrfsPartition /
注:/btrfsParition
、/ext4Partition
、および/backupspace
ディレクトリは、必要に応じて設定できます。
クールな新しいBtrfs機能の一部またはすべてを取得するには mkfs.btrfsコマンドを手動で実行する。の 代替インストーラー いつでも選択した前のステップに戻るオプションがあります。これを使用して、インストーラーがbtrfsを作成した後、独自のbtrfsを作成し、fsが使用されるように前のステップでインストーラーを起動できます。
基本システムをインストールします。
alt-F2はターミナルに移動し、mkfs.btrfs-/ dev/sdXYを実行します
「戻る」ボタンを押してから、もう一度パーティションオプションを選択します。デフォルトでは再フォーマットしないので、続行をクリックするだけです。基本システムが再インストールされます。再フォーマットしないことに関する警告に「はい」と答えます。
楽しい。
あとで圧縮を追加できます。 /etc/fstab
を開き、ルートファイルシステムの行を編集します。次のようにcompress
をmount-optionsに追加します。
UUID=0c8e6d48-e6b3-425a-ab33-24205a9cb586 / btrfs defaults,compress 0 1
GRUB2ではサポートされていないため、/ bootがbtrfsで動作しないことを忘れないでください。
あなたは常に古代中国のことわざに従うことができます:
インストーラパーティショナの機能が気に入らない場合は、自分でパーティションを作成し、それらのパーティションにインストールするようインストーラに指示してください。