この設定でUbuntuでFreeBSD UFSブートパーティションをマウントする方法:
- 以下を含む単一のHDD
- MBRパーティション表には、次のものが含まれます。
- いくつかの基本的なLinuxパーティションと、以下を含む拡張パーティション
- 以下を含むLinux論理区画およびFreeBSD論理区画
- 以下を含むFreeBSDディスクラベル(論理パーティションは「スライス」です)
- FreeBSDブート(UFS)とスワップパーティション
MBRパーティションは次のとおりです。
ubuntu$ sudo fdisk -l /dev/sda
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005d5af
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1953791 975872 83 Linux
/dev/sda2 1953792 11718655 4882432 83 Linux
/dev/sda3 11718656 13672447 976896 82 Linux swap / Solaris
/dev/sda4 13674494 83884031 35104769 5 Extended
/dev/sda5 13674496 33204223 9764864 83 Linux
/dev/sda6 33206272 83884031 25338880 a5 FreeBSD
ディスクラベルは次のとおりです。
freebsd$ disklabel /dev/ada0s6
# /dev/ada0s6:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 48580592 16 4.2BSD 0 0 0
b: 2097152 48580608 swap
c: 50677760 0 unused 0 0 # "raw" part, don't edit
次のコマンドを使用してFreeBSDを起動できます/etc/grub.d/40_custom
。
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD" {
insmod part_bsd
insmod ufs2
set root="(hd0,msdos6,bsd1)"
kfreebsd /boot/kernel/kernel
set kFreeBSD.acpi_load=YES
set kFreeBSD.hint.acpi.0.disabled=0
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s6a
kfreebsd_loadenv /boot/device.hints
}
これにより、問題なくgrub2からFreeBSDパーティションにアクセスできます。しかし、LinuxはBSDパーティションを検出しません。
ubuntu$ ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4 /dev/sda5 /dev/sda6
バージョン:Ubuntu 14.04、FreeBSD 10.3 RELEASE amd64(x86_64にカーネル4.2.0-27-genericを含む)、両方を新しくインストールします。
ベストアンサー1
解決策は、論理パーティション内のBSDパーティションのオフセットを計算し、オフセットを持つループデバイスを使用することです。
mount -t ufs -o loop,offset=8192,ro,ufstype=ufs2 /dev/sda6 /mnt