我的 USB 记忆棒上有一个 ext4 文件系统,使用一段时间后,我想将日志移动到其他一些块,以便使记忆棒的寿命更长。该日志由 inode 8 描述,但如何将其块重新分配到不同的位置?
是否可以在文件系统创建时执行此操作?
答案1
查看man mke2fs
。请密切注意-J /
location 部分和-E /
Packed_meta_blocks 部分。
您说您使用的是 USB 记忆棒。我假设它可以被格式化而不会产生任何后果。你备份数据了吗?
- 使用默认命令格式化磁盘并获取有关 USB 记忆棒如何组装的数据。
- 使用更改后的命令格式化磁盘,并获取有关移动位置后 USB 记忆棒外观的数据。
- 将日志移动到正在使用的磁盘上。
你备份数据了吗?
第1部分.默认日记帐供参考
- 插入 U 盘。
- 在终端窗口中,使用
sudo
或su
并提供密码。 - 使用
blkid " to find your " /dev/sdXX
标签。 mke2fs -t ext4 /dev/sdXX
默认格式的命令。- 现在提取有关驱动器的数据。
- 命令
tune2fs -l /dev/sdXX
。找到“Journal inode”行。写下这个数字。通常是 8。 命令
debugfs /dev/sdXX
命令
stat <8>
。 “8”来自“Journal inode”行。该命令需要与 <,> 精确输入。你看到了什么?第三行列出了期刊的大小。把这个写下来。我的机器的大小为 33554432 (~32Mb)。第 13 行列出了日志使用的范围。把这个写下来。我的机器进来的是196608 - 204799。196608时间每页4k等于786M。
q
那就指挥吧quit
。
- 移除 USB 记忆棒
第 2 部分:移动日志
- 与上面相同。
- 与上面相同。
- 与上面相同。
- 命令
mke2fs -J location=600M /dev/sdXX
。这应该将默认日志移动到从 600M 标记开始的点。 - 如上。
- 如上。
- 如上。
- 日记帐大小应该相同。在我的机器上,第一个日志范围已移至 153600。每页 153600 乘以 4k 等于约 614M。
- 如上。
- 如上。
第 3 部分:在正在使用的磁盘上移动日志
- 备份你的数据吗?
- 卸载分区。
umount /dev/sdXX
。 - 删除旧日记。
tune2fs -O ^has_journal /dev/sdXX
。 - 安装新日志。
tune2fs -J location=XX[M,G] /dev/sdXX
。指定单位。该日志可以移动到一个巨大的、千兆的位置。 e2fsck -fv /dev/sdXX
只是为了安全。- 重新启动机器。你做了备份不是吗?
您可以使用 更改日志大小和位置mke2fs -J size=XX,location=YY[M,G,P,T] /dev/sdXX
。大小符号始终以 MB 为单位。
这个是从哪里来的?艰难敲击学院的“尝试与错误”课程。