AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 6197
Accepted
mario
mario
Asked: 2010-10-12 14:58:48 +0800 CST2010-10-12 14:58:48 +0800 CST 2010-10-12 14:58:48 +0800 CST

欺骗安装程序以使用 btrfs root 进行压缩

  • 772

我想将 Maverick 安装到 BTRFS 根分区上。不是为了好玩或测试,而是因为我需要压缩,因为闪存盘很小(4GB)。

现在 10.10 安装程序终于支持 btrfs,但是没有办法在compress里面启用 flag。我可以以某种方式欺骗安装程序吗?对于旧版本并获得 LUKS,您可以预先安装分区。或者是否有一个简单的猴子补丁可以启用 btrfs+compress 预安装?

software-installation 10.10 btrfs compression
  • 10 10 个回答
  • 14066 Views

10 个回答

  • Voted
  1. Msktje
    2012-07-03T02:52:37+08:002012-07-03T02:52:37+08:00

    一个更简单的方法是改变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
      

      您还可以匹配块设备,例如/dev/sda1而不是-t btrfs和链elif,以便为不同的设备和文件系统使用不同的挂载选项。

    4. 将原始权限复制到新脚本:

      sudo chmod --reference=/bin/mount.bin /bin/mount
      
    5. 照常安装,您的 btrfs 分区将使用指定的选项(此处为compress)安装。

    6. 安装完成后,在退出实时环境之前,/etc/fstab将新安装的系统的 更改为匹配指定的选项,因此它将在新启动时使用相同的选项。

    我使用:defaults,noatime,compress-force=lzo,space_cache作为挂载选项。

    这适用于每日定量 (30/6/12)。

    我使用 btrfs 分区/和交换分区。

    学分转到这篇文章(在这个线程中),它又引用了这篇博客文章。

    • 12
  2. Michel
    2010-10-13T02:50:42+08:002010-10-13T02:50:42+08:00

    在安装程序安装您的分区后,您可以尝试切换到 shell 并执行 a mount -o remount,compress /target,这可能会起作用。

    • 4
  3. Best Answer
    CenterOrbit
    2012-04-03T16:58:08+08:002012-04-03T16:58:08+08:00

    我遇到这个线程是因为我想在闪存驱动器上安装 Linux Mint Debian 版,并从一开始就安装在压缩的 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,对吧!?

    • 3
  4. danBhentschel
    2015-05-30T07:06:18+08:002015-05-30T07:06:18+08:00

    最新的发行版busybox用于大多数命令,包括mount. 在这些版本中,/bin/mount是一个符号链接,/bin/busybox并且符号链接必须命名为“mount”,而不是“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将新安装的系统的 更改为匹配指定的选项,因此它将在新启动时使用相同的选项。
    • 3
  5. Geoff
    2013-09-06T13:34:43+08:002013-09-06T13:34:43+08:00

    从 13.04(Raring Ringtail)开始,您应该能够在不压缩的情况下安装在 btrfs 卷上,然后在启动到新安装后压缩整个卷上的每个文件。

    根据 Oracle 的文档,您可以通过使用 -clzo 选项对现有文件系统进行碎片整理来压缩现有文件系统上的现有文件。

    sudo btrfs filesystem defragment -clzo /
    

    将单斜杠传递给 btrfs 会告诉 btrfs 对根卷上的所有文件和目录进行碎片整理。

    请参阅:http ://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

    完成后,将 compress=lzo(或 compress=zlib,如果您愿意,但建议使用 lzo 以提高速度)添加到 /etc/fstab 中卷的行并重新启动,以便进一步写入磁盘的文件将被压缩。

    • 2
  6. user3911
    2010-10-14T20:09:51+08:002010-10-14T20:09:51+08:00

    手动选择:/dev/sda1 as btrfs for / some ext? /boot 一些交换

    在终端中:sudo bash

    按安装

    在终端行按回车: (sudo done) mount -t btrfs -o remount,compress /dev/sda1 /target

    • 1
  7. Arthur Ulfeldt
    2011-02-18T11:04:36+08:002011-02-18T11:04:36+08:00

    您可以通过手动运行 mkfs.btrfs 命令来获得任何或所有很酷的 Btrfs 新功能。备用安装程序可以随时选择返回到您选择的上一步。在安装程序创建 btrfs 后,您可以使用它来制作自己的 btrfs,然后在上一步启动安装程序,以便使用您的 fs。

    1. 运行安装程序,直到分区阶段结束。
    2. 让它安装基本系统。

    3. alt-F2 转到终端并运行 mkfs.btrfs - /dev/sdXY

    4. 返回安装程序 alt-F1
    5. 点击“返回按钮”,然后再次选择分区选项。默认设置是不重新格式化,所以你可以点击继续。它将重新安装基本系统。对有关不重新格式化的警告说是。

    6. 请享用。

    • 1
  8. nob
    2013-03-28T09:01:20+08:002013-03-28T09:01:20+08:00

    我通过用压缩的 btrfs 分区替换棒上的 ext4 分区来让它工作。这可以使用另一台计算机来完成。

    1. 通过复制所有内容

      sudo cp -ar /ext4Partition/* /backupspace/
    2. 将使用 gparted 的分区替换为 btrfs one

    3. 使用 sudo mount mount -o compress /dev/yourdevice /btrfsPartition 挂载新分区
    4. 复制一切

      sudo cp -ar /backupspace/* /btrfsPartition/
    5. 将 /btrfsPartition/etc/fstab 更新为新的设备 uuid 和新的分区类型。删除 remount 选项,因为 btrfs 没有这个。
    6. 重新安装引导加载程序(例如通过BootRepair)

    注意:目录/btrfsParition,/ext4Partition和/backupspace可以根据需要设置。

    • 1
  9. mniess
    2010-10-12T16:06:59+08:002010-10-12T16:06:59+08:00

    您可以稍后添加压缩。打开/etc/fstab并编辑根文件系统的行。像这样添加compress到安装选项:

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

    现在要么重新挂载,要么重新启动,不要忘记 /boot 不能在 btrfs 上运行,因为 GRUB2 不支持它。

    • 0
  10. Oli
    2010-10-13T02:21:23+08:002010-10-13T02:21:23+08:00

    你总是可以遵循中国古代谚语:

    如果您不喜欢安装程序分区程序的功能,请自行分区并告诉安装程序安装到这些分区上。

    • 0

相关问题

  • Haskell 平台会在 10.10 中可用吗?

  • 设置 LAMP 堆栈的最简单方法是什么?

  • 我应该在哪里安装 sagemath?

  • How do I install Adobe Flash player?对于 11.10 及更高版本明确修复 11.10 上的 64 位 Flash

  • 如何设置软件中心为非 root 用户安装软件?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve