标签: ext4

有什么方法可以从已删除的 LVM 逻辑卷中恢复 ext4 文件系统吗?

有一天,当我在 Vmware 下的 Linux 客户机上扩展磁盘时,我经历了一次真正的脑放屁时刻。我将 Vmware 磁盘文件拉伸到所需的大小,然后执行了在没有LVM 的 Linux 客户机上通常执行的操作:删除了 LVM 分区并重新创建了它,从与旧分区相同的位置开始,但扩展到了新的大小磁盘。(接下来是 fsck 和 resize2fs。)

然后我意识到 LVM 在原始分区上的行为方式与 ext2/3/4 不同...从最近的备份(幸运的是,仅在五个小时前进行)恢复 Linux 来宾后,我现在很好奇我如何从以下场景中恢复过来。毕竟几乎可以肯定,我将来也会成为一个笨蛋。

具有一个磁盘的虚拟 Linux 客户机,分区为一个 256MB 的 /boot(主)分区 (/dev/sda1),其余部分位于逻辑扩展分区 (/dev/sda5)。

然后使用 pvcreate 将 /dev/sda5 设置为物理卷,并使用常用的 vgcreate 命令在其上创建一个卷组 (vgroup00)。然后vgroup00被分成两个逻辑卷root和swap,逻辑上用于/和swap。/ 是 ext4 文件系统。

由于我有损坏的 guest 虚拟机的备份,因此我能够使用 vgcfgrestore 从 /etc/lvm/backup 下找到的备份 LVM 设置重新创建卷组,并使用与物理卷相同的 UUID 等。运行此命令后,我有两个与之前大小相同的逻辑卷,其中有 4GB 的可用空间,用于扩展磁盘。

但是,当我尝试运行“fsck /dev/mapper/vgroup00-root”时,它抱怨超级块损坏。我尝试通过运行“mke2fs -n /dev/mapper/vgroup00-root”来定位备份超级块,但这些都不起作用。然后我尝试运行TestDisk,但当我要求它查找超级块时,它只给出了由于文件系统损坏而无法打开文件系统的错误。

那么,在Ubuntu Server 10.04 64位中LVM2的默认分配策略下,是否有可能从卷组的末尾分配逻辑卷呢?这肯定可以解释为什么恢复的逻辑卷不包含预期的数据。我可以通过重新创建大小和磁盘位置与之前完全相同的 /dev/sda5 来恢复吗?我可以使用其他工具来查找和恢复文件系统吗?(很明显,问题不在于我是否应该从一开始就以不同的方式来做这件事,我知道。这是一个关于当狗屎已经开始流行时该怎么办的问题。)

linux ext4 lvm data-recovery

5
推荐指数
1
解决办法
6826
查看次数

可以通过 FUSE 挂载 ext4 分区映像吗?

我正在尝试在用户空间中安装 ext4 分区映像。(没有 sudo,没有对 /dev/loop0 或 /etc/fstab 等进行特殊配置/权限修改)。所以我希望 FUSE 能够拯救我们。

然而,似乎每个通过FUSE系统挂载的文件系统都需要有一个特殊的FUSE驱动程序,而且我还没有找到适用于linux的linux读写ext4 FUSE驱动程序。

有没有办法通过 FUSE 挂载 ext4 映像(具有写入权限)?

linux ext4 fuse

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

估计 resize2fs 收缩所需的时间

我有一个很大的 ext4 文件系统,我目前正在缩小它(在我的情况下为 109Tb -> 83Tb),并且需要很长时间(询问时的第 5 天)。目前我可以通过iotop. 然而,从互联网上粗略一瞥,似乎 resize2fs 并没有像增加卷(大约 2011 年)那样针对收缩进行优化。

就此而言,如果我能帮上忙,我不想打断它,但我觉得这么长时间运行文件系统更改有点赤裸裸。考虑到我们知道前后的空间需求(以及块数/块大小),ext4 收缩的正确/及时估计是什么?

涉及软件

  • e2fs...:1.43.1
  • 操作系统: debian 4.19.16-1-bpo9+1

我的特定文件系统

  • 类型:ext4
  • 大小:~109Tb(29297465344 个块)
  • 缩小到:83Tb(22280142848 块)
  • 块大小:4Kb(4096 字节)
  • 每个 inode 的字节数:2^15(32786 字节)

当前输出

resize2fs -p ...

[root@devlynx]## ~:: resize2fs -p /dev/storage/storage 83T
resize2fs 1.43.4 (31-Jan-2017)
Resizing the filesystem on /dev/storage/storage to 22280142848 (4k) blocks.
Begin pass 2 (max = 802451420)
Relocating blocks             XX--------------------------------------
Run Code Online (Sandbox Code Playgroud)

iotop

   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN …
Run Code Online (Sandbox Code Playgroud)

linux filesystems ext4 debian lvm

5
推荐指数
1
解决办法
969
查看次数

解释 resize2fs 收缩进度 (-p)“pass 2”输出

问题resize2fs:在大型 (8-28Tb) ext4 文件系统上进行脱机收缩操作的“第 2 步”期间,进度条指示什么?

细节:

我已经resize2fs使用(“进度”)标志完成了大约 5 次收缩操作-p,但我无法弄清楚“pass 2”的“进度条”告诉我什么。下面包含示例输出。

进度条开始时全部为破折号,并部分填充 X,但 X 的数量在整个操作过程中增加和减少,并且在每种情况下操作均已完成,但进度条不完整。有时,当第 2 遍完成时,进度条会部分填充,如下面的示例输出所示,但至少在一种情况下,它完成时没有 X(“空”),尽管在操作期间存在 X。有时,X 的数量在整个操作过程中会多次增加和减少;例如,从0增加到8个X,然后减少到0,然后增加到6,然后回到0,然后增加到6并完成。

# resize2fs -M -p /dev/media/media
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /dev/media/media to 820975573 (4k) blocks.
Begin pass 2 (max = 369742748)
Relocating blocks             XXXXX-----------------------------------
Begin pass 3 (max = 44944)
Scanning inode table          XX--------------------------------------
Run Code Online (Sandbox Code Playgroud)

系统: PopOS 20.04(基本上是Ubuntu 20.04)。 resize2fs1.45.4。让我知道是否还有其他相关版本可以包含在此处。

先前的研究:

手册页仅引用“完成百分比”:

在离线调整大小期间打印每个 resize2fs 操作的百分比完成条,以便用户可以跟踪程序正在执行的操作。

...但第二阶段的行为不符合该描述,但增加和减少似乎表明它正在尝试传达某些信息

我在 Google、ServerFault …

linux filesystems ext4

5
推荐指数
0
解决办法
1531
查看次数

我的驱动器是否与 Linux 软件 RAID 0 阵列同等使用?

我在 RAID 0 配置中有四个 NVMe 驱动器。

我正在尝试确定阵列正在处理多少 IOPS。

当我运行时iostat,似乎一个驱动器处理的 IO 比其他三个驱动器多。

这是iostat收集数据方式的错误、mdadm 的已知问题,还是我错误地配置了阵列?

使用详情。

# iostat

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1        1669.12     22706.35     13975.13 63422465065 39034761844
nvme3n1         753.28     13228.56     12185.39 36949483692 34035736524
nvme1n1         635.93     13781.47     14014.10 38493855272 39143630456
nvme2n1         744.35     14704.94     14283.13 41073264648 39895068820
md0            4291.15     72863.78     56468.04 203520212237 157724286024
Run Code Online (Sandbox Code Playgroud)

软件 RAID 设备详细信息

# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Feb 19 22:45:06 2021
        Raid Level : raid0
        Array …
Run Code Online (Sandbox Code Playgroud)

raid ext4 mdadm iostat nvme

5
推荐指数
1
解决办法
55
查看次数

在 ext4 上挂载“结构需要清理”的文件系统

有一个多年前创建的(并且多次调整大小)带有 ext4 的文件系统。电源故障后,它停止安装。\n当我尝试手动安装它时,我收到错误:

\n
# mount /dev/space/vservershosting-vs /mnt/\nmount: /mnt: mount(2) system call failed: Structure needs cleaning.\n
Run Code Online (Sandbox Code Playgroud)\n

dmesg 中有更多信息:

\n
[32618.800854] EXT4-fs error (device dm-44): __ext4_iget:5080: inode #2: block 1953722220: comm mount: invalid block\n[32619.264574] EXT4-fs (dm-44): get root inode failed\n[32619.264633] EXT4-fs (dm-44): mount failed\n
Run Code Online (Sandbox Code Playgroud)\n

fsck 无需任何修复即可通过:

\n
# fsck.ext4 -c -f -v /dev/space/vservershosting-vs\ne2fsck 1.44.5 (15-Dec-2018)\nChecking for bad blocks (read-only test): done                                                 \n/dev/space/vservershosting-vs: Updating bad block inode.\nPass 1: Checking inodes, blocks, and sizes\nPass 2: Checking directory structure                                           \nPass 3: Checking …
Run Code Online (Sandbox Code Playgroud)

linux filesystems ext4 mount

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

使用 dd 将较小的分区映像恢复到较大的分区

我最近使用 dd 将一个 11GB ext4 分区备份到一个文件,重新分区并将该文件恢复到一个 40GB 分区。parted 现在显示分区为 40GB,Nautilus 将其读取为 11GB,两者都将驱动器列为只有 2GB 可用空间。

这是文件系统问题还是分区问题,如何在不重新分区到 11GB、添加文件和增加分区的情况下修复它?

partition ext4 dd

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

ext3 相对于 ext4 的优点是什么?

特别想将存储空间用于音乐/视频文件,但有一些常用的 doc/xls/etc) - 想知道是否有具体的理由选择一个。

谢谢

storage ext4 ext3

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

日志文件系统和电源故障

我听说即使是像 EXT3/EXT4 这样的日志文件系统也可能在电源故障期间损坏,例如来自维基百科 [1]:

In the event of a system crash or power failure, 
such file systems are quicker to bring back online and 
less likely to become corrupted.
Run Code Online (Sandbox Code Playgroud)

任何人都可以通过举例来提供更多的细节,当

  1. 腐败可能发生
  2. 日志文件系统避免了损坏

[1] http://en.wikipedia.org/wiki/Journaling_file_system

linux filesystems ext4 ext3 kernel

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

CentOS 5.x 支持 ext4 吗?

我相信 CentOS 5 中的默认操作系统文件系统是 ext3。

是否可以在 Centos 5.x 或仅在 6.x 上使用 ext4?我可以将现有的 ext3 文件系统升级到 ext4 吗?

linux ext4 ext3 centos

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

标签 统计

ext4 ×10

linux ×7

filesystems ×4

ext3 ×3

lvm ×2

centos ×1

data-recovery ×1

dd ×1

debian ×1

fuse ×1

iostat ×1

kernel ×1

mdadm ×1

mount ×1

nvme ×1

partition ×1

raid ×1

storage ×1