标签: btrfs

GRUB 转换为 btrfs 后损坏

首先,是的,事实上,我确实怀疑将文件系统从 ext4 更改为 btrfs 会破坏 GRUB 和 fstab。

现在,这就是发生的事情。我无缝地将文件系统转换为btrfs并且效果很好。现在,我似乎无法启动,因为我收到“GRUB 错误:未知文件系统”。如何修复 GRUB 和 fstab 以使用新文件系统进行更新?

grub fstab btrfs

4
推荐指数
1
解决办法
4252
查看次数

当错误为“目录不为空”时,如何删除 apt-btrfs-snapshot?

有一个由 apt-btrfs-snapshot 创建的快照不会删除

  Delete subvolume '/tmp/foo/@apt-snapshot-2013-04-XX_1X:3X:XX'
  ERROR: cannot delete '/tmp/foo/@apt-snapshot-2013-04-XX_1X:3X:XX' - Directory not empty
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除它?

btrfs

4
推荐指数
1
解决办法
5168
查看次数

btrfs,没有剩余磁盘空间

我在 btrfs 卷的磁盘空间有问题。df显示有足够的​​磁盘空间。但是当我试图复制 10GB 测试文件系统时,说这个设备上没有磁盘空间。

df -h | grep /mnt/ssd

/dev/sda 448G 135G 313G 31% /mnt/ssd

同样在这里:

btrfs filesystem df /mnt/ssd

Data, RAID1: total=446.12GiB, used=133.29GiB
System, RAID1: total=8.00MiB, used=80.00KiB
Metadata, RAID1: total=1.00GiB, used=609.05MiB
GlobalReserve, single: total=405.53MiB, used=0.00B
Run Code Online (Sandbox Code Playgroud)

我不知道如何读取这个输出:

sudo btrfs filesystem show

Label: none  uuid: aba64e21-69d1-46c1-b3f2-dfda832b67fd
    Total devices 2 FS bytes used 133.88GiB
    devid    1 size 447.13GiB used 447.13GiB path /dev/sda
    devid    2 size 447.13GiB used 447.13GiB path /dev/sdb
Run Code Online (Sandbox Code Playgroud)

那么使用的是 133.88GiB 还是 447.13GiB?非常混淆。

linux ssd btrfs

4
推荐指数
1
解决办法
3428
查看次数

如何修复 btrfs 范围问题

我想我被 btrfs 中的一个已知错误击中了:

https://www.spinics.net/lists/linux-btrfs/msg60984.html

当然,错误消息看起来很相似。如果是同样的问题,似乎有点不幸的是,针对一个 2 年之久的问题的修复程序尚未移植到 V4.9 稳定内核中(这是 Debian 9 使用的内核)

我现在处于文件系统 inode 之一存在范围问题的情况(如 所报告的btrfs check):

root 257 inode 2607184 errors 100, file extent discount
Found file extent holes:
       start: 0, len: 81920
Run Code Online (Sandbox Code Playgroud)

似乎没有太多关于如何摆脱这种情况的建议或文档(幸运的是我确实有相关文件系统的备份,所以最坏的情况可能会重新格式化和恢复)

似乎btrfs check --repair只是一遍又一遍地循环打印相同的错误,而没有实际修复它。

有没有办法修复现有的文件系统,或者我最好重新创建它并恢复备份?

linux btrfs

4
推荐指数
1
解决办法
2515
查看次数

文件系统 BTRFS 大小与 df、btrfs 和 baobab 之间的差异

今天,我的桌面通知我我的 /-文件系统已“满”。所以一开始我对文件、包和旧快照做了一些清理。

然而,当我删除前一个时,我注意到使用该工具baobab我只有 50GB 的空间(参见屏幕截图)。我的df -alh命令给我的结果是我的大小是 140G,命令btrfs filesystem df /给我的结果是 125G。如果我检查分区大小,cfdisk我得到的结果是,如果有 139,7G(也就是说 140G)可用,对应于 df -alh 命令。但是我不明白为什么 btrfs 和 baobab 给我不同的结果。 截图差异大小输出

- 编辑 -

$sudo  btrfs fi usage /
Overall:
    Device size:         139.70GiB
    Device allocated:        136.70GiB
    Device unallocated:        3.00GiB
    Device missing:          0.00B
    Used:            133.78GiB
    Free (estimated):          3.63GiB  (min: 2.13GiB)
    Data ratio:               1.00
    Metadata ratio:           2.00
    Global reserve:      308.56MiB  (used: 0.00B)

Data,single: Size:125.68GiB, Used:125.05GiB (99.50%)
   /dev/sda1     125.68GiB

Metadata,DUP: Size:5.50GiB, Used:4.37GiB (79.38%)
   /dev/sda1      11.00GiB …
Run Code Online (Sandbox Code Playgroud)

linux filesystems btrfs ubuntu

4
推荐指数
1
解决办法
4629
查看次数

不小心将 BtrFS 放在普通设备上 - 如何恢复?

在新硬盘上,我创建了一个包含三个分区的 GPT 分区表:

/dev/sdd1 256M for /boot
/dev/sdd2   8G for swap
/dev/sdd3  ~1T for /
Run Code Online (Sandbox Code Playgroud)

然后,我不小心用 BtrFS 格式化了原始设备 /dev/sdd。我想:没问题 - 无论如何都是新磁盘。我重新创建了分区表,准备了交换空间,现在用 BtrFS 格式化了 /dev/sdd3。引导分区尚未使用。当 BtrFS 证明对我来说稳定时,我会将该磁盘设为我的主引导磁盘,并将我以前的 LVM 卷合并到 BtrFS 池中 - 但现在这无关紧要。我将所有数据分区同步到 BtrFS 分区上的子卷,配置内核和 grub 并重新启动。一切都很好,工作正常,并且:哇,速度更快。

但是每次 BtrFS progs 扫描 BtrFS 卷时,他们仍然会看到 /dev/sdd 卷,我在重新分区之前不小心格式化了该卷。我如何解决它?现在似乎没有受到伤害,但我不希望任何实用程序仅仅因为它在那里看到 BtrFS 就偶然尝试摆弄 /dev/sdd ......

linux partitioning gpt btrfs

3
推荐指数
1
解决办法
604
查看次数

如何在 btrfs 系统上删除所有快照中的文件?

我已经建立了一个复杂的备份方案,包括每小时、每天、每周、每月的备份,几乎不占用设备上的额外空间(感谢 btrfs 牛文件系统的荣耀)。

但不幸的是,我用老式的方式用完了空间(通过向它复制很多东西)。

现在删除一些东西是没有用的,因为它存在于所有的快照中。为了释放磁盘空间,我必须删除所有快照,因为文件首先被复制到设备上。我不想那样做,因为

  • 很难知道这是什么时候(特别是如果文件被更改了)
  • 我不想丢失这些快照中所有其他文件的历史记录
  • 访问快照只能通过挂载它们来完成,对于 root-fs 来说有点复杂,然后只是做 rm -f

那么如何告诉 btrfs 在所有快照中删除单个文件?实际上,这意味着将一些内部参考计数器设置为零,以便可以释放空间。

如果 btrfs 工具本身无法做到这一点(这有点短视),我也很高兴任何第三方工具可以简化在所有快照中搜索、挂载和删除文件的任务.

linux snapshot btrfs

3
推荐指数
1
解决办法
5639
查看次数

SSD 上的 Btrfs,“设备上没有剩余空间”;catch-22 带有 `fstrim` 和 `btrfs balance`;如何恢复?

我的 Kubuntu(安装在 下/)的根文件系统是 Btrfs。我不用-o discard作安装选项。这意味着我需要fstrim按需运行

过去我遇到了这个问题:btrfs, no diskspace left。我注意到fstrim -v /几乎没有任何空间被修剪。我的解决方案是btrfs balance start /fstrim. 这是我在那里回答的要点。

今天不一样了。可能是我维护太晚了。这是发生的事情:

# fstrim -v /
/: 24 KiB (24576 bytes) trimmed
# btrfs balance start /
ERROR: error during balancing '/': No space left on device
Run Code Online (Sandbox Code Playgroud)

我删除了几个子卷(快照),btrfs subvolume delete …但没有帮助。我不太记得细节,但我认为以前我可以运行,btrfs balance …因为初步fstrim修剪了至少几个 MiB,不像今天那样小到 24 KiB。现在,这似乎是一种第 22 种情况,其中fstrimbtrfs balance …

linux ssd trim btrfs

3
推荐指数
1
解决办法
1663
查看次数

安装 Linux 时如何使用 Btrfs 压缩选项?

我一直在尝试带有 SSD 驱动器的 Btrfs,并且喜欢在 fstab 中设置的压缩选项。

但是,这仅适用于在我安装操作系统并修改 fstab 文件后创建的文件。

我想要的是将压缩应用于系统上的所有文件,看看它是否可以改善启动时间和应用程序启动时间。

有谁知道我可以将更改应用于安装前或安装后的所有文件的方法吗?

linux compression filesystems btrfs installation

2
推荐指数
1
解决办法
6046
查看次数

如何对 btrfs 根文件系统进行快照(/ 的快照)?

我有 Fedora 20,当我安装它时,我选择使用 btrfs 作为文件系统,原因有很多,但主要是为了有可用的快照。

但我似乎无法创建/. 我可以像这样对我的主文件夹(也是 btrfs)btrfs subvolume snapshot /home/ /snap/home进行快照,但是当我尝试/通过编写btrfs subvolume snapshot / /snap它来进行快照时只输出ERROR: incorrect snapshot name ('/').

我确定 / 是 btrfs。 分道扬镳

列出子卷输出:

# btrfs subvolume list /
ID 256 gen 9562 top level 5 path home
ID 258 gen 9562 top level 5 path root
ID 306 gen 9517 top level 258 path snap/home/2014-08-15_00:44:00
Run Code Online (Sandbox Code Playgroud)

是否无法对根文件夹进行快照,即使它使用的是 btrfs?

linux fedora filesystems snapshot btrfs

2
推荐指数
1
解决办法
1万
查看次数

计算写入硬盘的每个文件的校验和

是否可以自动计算写入硬盘的每个文件的校验和?我的操作系统是 Linux。我读过 btrfs 为文件存储某种校验和。有可能转储这些校验和吗?其他文件系统呢?

linux checksum hashing btrfs

2
推荐指数
1
解决办法
2212
查看次数

btrfs:浏览子卷

btrfs在阅读文档并在本地系统上进行实验后,我对子卷很陌生,并且对子卷感到困惑。我有一个带有btrfs根分区的 Linux Mint 系统。Mint 方便地包含一个有助于自动化定期快照的工具。我可以轻松列出它制作和保存的内容。

$ sudo btrfs subvolume list /
ID 257 gen 52540 top level 5 path @
ID 258 gen 52540 top level 5 path @home
ID 283 gen 52467 top level 5 path timeshift-btrfs/snapshots/2019-01-15_02-00-51/@
ID 286 gen 50026 top level 5 path timeshift-btrfs/snapshots/2019-01-16_02-00-01/@
ID 288 gen 50026 top level 5 path timeshift-btrfs/snapshots/2019-01-17_02-00-01/@
ID 289 gen 50026 top level 5 path timeshift-btrfs/snapshots/2019-01-18_02-00-01/@
ID 291 gen 50409 top level 5 path timeshift-btrfs/snapshots/2019-01-19_02-00-01/@
Run Code Online (Sandbox Code Playgroud)

然而,根据文档,我了解到可以浏览快照,它们的完整树就像主文件树一样公开,显示为应用程序的目录。例如,我可以将单个文件从快照复制到已安装的顶级卷。也就是说,从应用程序的角度来看,制作快照很像原子的递归副本。

/然而,我在或 …

linux btrfs

2
推荐指数
1
解决办法
2万
查看次数

增加 LXD/LXC Btrfs 循环文件存储池大小

我们的生产容器崩溃了,因为它的 LXC 存储池空间不足。

这是dh -h从容器内部:

Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       82G   78G  2.0G  98% /
Run Code Online (Sandbox Code Playgroud)

这是来自主机系统的相同挂载:

/dev/loop0       82G   78G  2.0G  98% /var/lib/lxd/storage-pools/default
Run Code Online (Sandbox Code Playgroud)

我记得一年前当我设置它时,它问我 80GB 是否适合听起来不熟悉的东西,并且因为它没有说“容器磁盘大小”并说其他的东西,我只是想我最好相信默认值选项。现在我知道这磁盘空间限制。我现在怎样才能增加这个限制?

此刻,我只是紧急清理了一些空间。主机实际上有数 TB 的磁盘空间。

PS 很抱歉抱怨,但 LXC 的文档是我见过的最糟糕的文档之一。对于像我这样的用户来说,这没有意义。

PPS 我忘了我实际上使用 LXD,呵呵。我打字lxc做任何事情的事实让我感到困惑。

更新: 直觉上,我认为这个命令可以调整存储池的大小:

# lxc storage set default size 200GB
Run Code Online (Sandbox Code Playgroud)

但它失败了:

Error: The [size] properties cannot be changed for "btrfs" storage pools
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

filesystems btrfs resizing lxc lxd

2
推荐指数
1
解决办法
2111
查看次数