use*_*182 7 linux freebsd filesystems
我在linux下有:
Device Boot Start End Blocks Id System
/filename.img * 63 1007999 503968+ a5 FreeBsd
Run Code Online (Sandbox Code Playgroud)
在上面的分区下,我有两个切片:ufs 文件系统和交换。我不知道,如何确定挂载 ufs 分区的挂载偏移量。
mount -r -t ufs -o loop,offset=32256,ufstype=ufs2 filename.img /test/
Run Code Online (Sandbox Code Playgroud)
消息输出
ufs_read_super: bad magic number
Run Code Online (Sandbox Code Playgroud)
它不起作用。
我怀疑是
mount -r -o loop,offset=32768,ufstype=ufs2 filename.img /test/
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,第一个 BSD 分区开始于相对于整个磁盘的 32kB 边界。这是 512B 的 64 个扇区。相对于PC分区,BSD分区的偏移量为63个扇区,因为PC分区相对于整个磁盘的偏移量为1个扇区:磁盘的第一个扇区包含分区表。
根据 rozcietrzewiacz 的建议,您可以使用以下命令确认 BSD 分区的偏移量
partx -l filename.img
Run Code Online (Sandbox Code Playgroud)
Linux 内核有一个补丁来支持自动访问循环设备的分区。Debian 将其应用到他们的内核中。如果您有此补丁,请确保loop驱动程序具有足够大的max_part参数(您可能需要这样做rmmod loop; modprobe max_part=63)。然后 BSD 分区将显示为/dev/loop0p5和之类的内容/dev/loop0p6。