我想将Maverick安装到BTRFS根分区上。并不是为了娱乐或测试,而是因为我需要压缩的闪存盘(4GB)。
现在,10.10安装程序终于支持btrfs,但是无法在其中启用该compress
标志。我可以以某种方式欺骗安装程序吗?对于旧版本并获得LUKS,您可以预先安装分区。还是有一个简单的猴子补丁可以启用btrfs + compress预安装?
compress
或ssd
。没运气。
我想将Maverick安装到BTRFS根分区上。并不是为了娱乐或测试,而是因为我需要压缩的闪存盘(4GB)。
现在,10.10安装程序终于支持btrfs,但是无法在其中启用该compress
标志。我可以以某种方式欺骗安装程序吗?对于旧版本并获得LUKS,您可以预先安装分区。还是有一个简单的猴子补丁可以启用btrfs + compress预安装?
compress
或ssd
。没运气。
Answers:
之所以遇到这个线程,是因为我希望将Linux Mint Debian Edition安装在闪存驱动器上,并从一开始就在压缩的btrfs上进行安装。尽管这些解决方案并不直接适用于达到我的结果,但我还是使用了一些信息来达到我的目标。
问题是,安装程序格式化和安装分区以及开始复制文件的要点彼此相邻,因此我无法执行上述其他人提到的“重新安装”选项。
安装程序脚本的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
以对不同的设备和文件系统使用不同的安装选项。
将原始权限复制到新脚本中:
sudo chmod --reference=/bin/mount.bin /bin/mount
照常安装,您的btrfs分区将使用指定的选项(此处为compress
)进行挂载。
/etc/fstab
新安装的系统的,以匹配指定的选项,因此它将在新启动时使用相同的选项。我用过:defaults,noatime,compress-force=lzo,space_cache
作为安装选项。
这适用于每日定量(12/6/30)。
我将btrfs分区用作/
和交换分区。
在安装程序安装完分区后,您可以尝试切换到Shell并执行mount -o remount,compress /target
,这可能会起作用。
mount -o remount,compress,ssd /dev/mapper/target /target -t btrfs
源设备的完整命令。
从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
并且该符号链接必须命名为“ mount”,而不是“ mount.bin”,才能正常工作。因此,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
新安装的系统的,以匹配指定的选项,因此它将在新启动时使用相同的选项。我通过将压缩棒上的ext4分区替换为压缩的btrfs分区来使其工作。可以使用另一台计算机来完成。
通过复制所有内容
须藤cp -ar / ext4Partition / * / backupspace /
使用gparted用btrfs替换一个分区
复制一切
须藤cp -ar / backupspace / * / btrfsPartition /
注意:目录/btrfsParition
,/ext4Partition
并且/backupspace
可以根据需要设置。
您可以稍后再添加压缩。打开/etc/fstab
并编辑您的根文件系统的行。compress
像这样添加到mount-options:
UUID=0c8e6d48-e6b3-425a-ab33-24205a9cb586 / btrfs defaults,compress 0 1
现在重新安装或重新引导,不要忘记/ boot不能在btrfs上运行,因为GRUB2不支持它。
tar
有时会忘记一些文件属性,不确定我是否使用pax或rsync代替。
您总是可以遵循中国古代谚语:
如果您不喜欢安装程序分区程序的功能,请自行对其进行分区,并告诉安装程序将其安装到这些分区上。