不确定是否更适合超级用户的服务器故障板子,告诉我一下。
我有一个驱动器,我用它重新分区fdisk
。最初只有一个大分区,现在有多个分区。现在,直到下次重新启动之前,内核不会考虑新的分区表。
关键是该驱动器上有一些通过 NFS 共享的数据,并且在重新引导时应该存在于该驱动器上。另外,我想避免修改配置文件,即使是暂时的。因此,我想确保这些数据位于/dev/sdb1
与前一个分区相对应的第一个分区上,以便它们在下次启动时立即可用。
那么有没有一种(简单)方法可以在驱动器上的特定扇区或块上写入数据?这是dd
“寻求”选项的目的吗?如果我设法做到这一点,一旦考虑到新分区,数据在下次重新启动时仍然可读,对吗?
FWIW,数据量不是很大,2.1 MB,但/dev/sdb1
只有 82 MB,驱动器为 160 GB。
谢谢。
编辑:有关整个历史记录以及为什么我无法重新加载分区表(这将是最好的解决方案),请参阅这个问题在服务器故障。
Edit2:好的,我可能找到了一个解决方法,即在机器重新启动后、在设置 NFS 之前从其他地方复制文件。
Edit3:没关系Edit2,新的/dev/sdb1
还没有被格式化......
Edit4:实际上,最后一次编辑可能会放弃整个问题,因为它适用于任何情况。应该早点想到的……
答案1
您需要处理 NFS 并让它停止导出旧驱动器。你不能只是用“这不是一个选择”来否认这一点。
也就是说,如果您希望直接访问设备上的特定块而不依赖内核分区,那么是的,dd
它seek
和skip
选项将起作用。如果您想访问一系列扇区块设备,您可以使用您设置的循环设备来losetup
具有特定的偏移量和大小限制。最后,您始终可以在连接设备的虚拟机中启动新内核(例如使用libguestfs
)/dev/sdb
,该内核将读取并使用存储在设备上的分区。