我不小心覆盖了正在运行的 Ubuntu 主机上的 /boot 文件系统,其中 root fs 和 swap 是 LV,内核、initramfs 等位于 /boot 下,grub 模块和配置位于 /boot/grub 下。
如何重新创建成功启动所需的所有文件?
# mkfs.ext2 /dev/sda1
# mount /dev/sda1 /boot
# apt-get install --reinstall linux-image-`uname -r` linux-image memtest86+
# mkdir /boot/grub
# grub-install /dev/sda
Run Code Online (Sandbox Code Playgroud)
这似乎已经重建了大部分内容,这足够了吗?我不想在没有确定重启完成的情况下冒险重启。
对于偏执者来说,这也可能是在闪存驱动器上创建备份启动分区的一种方法,例如,如果您的启动分区没有镜像,但根目录是镜像的。
Apple 现在在包括 macOS 在内的多个产品线中使用 APFS。这个新的文件系统有一些很好的特性来最小化实际占用的磁盘空间,比如稀疏文件支持和类似于 BSD 的 clonefile() 的 COW 克隆。
我已经创建了一个大的稀疏文件作为磁盘映像,并且还将此文件克隆给了其他一些文件。从那时起,原版及其克隆版都被写入了不同数量的内容。
我发现mdls(1)的输出可以告诉我有多少文件是稀疏的。例如,一个 16GB 的文件可能只占用 4.4GB 的磁盘空间。但是,如果我克隆该文件,即使所有块在两个文件之间共享,mdls 仍会显示相同的克隆数据。
有没有办法确定一个或多个克隆共享了多少文件?我能够确定这一点的唯一方法是删除文件并查看释放了多少 fs 块。
有关更多详细信息和示例,请参阅https://and1equals1.blogspot.com/2019/06/playing-with-cloned-sparse-files-on-apfs.html。