| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | BFS FILESYSTEM FOR LINUX | 
|  | 2 | ======================== | 
|  | 3 |  | 
|  | 4 | The BFS filesystem is used by SCO UnixWare OS for the /stand slice, which | 
|  | 5 | usually contains the kernel image and a few other files required for the | 
|  | 6 | boot process. | 
|  | 7 |  | 
|  | 8 | In order to access /stand partition under Linux you obviously need to | 
|  | 9 | know the partition number and the kernel must support UnixWare disk slices | 
|  | 10 | (CONFIG_UNIXWARE_DISKLABEL config option). However BFS support does not | 
|  | 11 | depend on having UnixWare disklabel support because one can also mount | 
|  | 12 | BFS filesystem via loopback: | 
|  | 13 |  | 
|  | 14 | # losetup /dev/loop0 stand.img | 
|  | 15 | # mount -t bfs /dev/loop0 /mnt/stand | 
|  | 16 |  | 
|  | 17 | where stand.img is a file containing the image of BFS filesystem. | 
|  | 18 | When you have finished using it and umounted you need to also deallocate | 
|  | 19 | /dev/loop0 device by: | 
|  | 20 |  | 
|  | 21 | # losetup -d /dev/loop0 | 
|  | 22 |  | 
|  | 23 | You can simplify mounting by just typing: | 
|  | 24 |  | 
|  | 25 | # mount -t bfs -o loop stand.img /mnt/stand | 
|  | 26 |  | 
|  | 27 | this will allocate the first available loopback device (and load loop.o | 
|  | 28 | kernel module if necessary) automatically. If the loopback driver is not | 
| Johannes Berg | a81792f | 2008-07-08 19:00:25 +0200 | [diff] [blame] | 29 | loaded automatically, make sure that you have compiled the module and | 
|  | 30 | that modprobe is functioning. Beware that umount will not deallocate | 
|  | 31 | /dev/loopN device if /etc/mtab file on your system is a symbolic link to | 
|  | 32 | /proc/mounts. You will need to do it manually using "-d" switch of | 
|  | 33 | losetup(8). Read losetup(8) manpage for more info. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 34 |  | 
|  | 35 | To create the BFS image under UnixWare you need to find out first which | 
|  | 36 | slice contains it. The command prtvtoc(1M) is your friend: | 
|  | 37 |  | 
|  | 38 | # prtvtoc /dev/rdsk/c0b0t0d0s0 | 
|  | 39 |  | 
|  | 40 | (assuming your root disk is on target=0, lun=0, bus=0, controller=0). Then you | 
|  | 41 | look for the slice with tag "STAND", which is usually slice 10. With this | 
|  | 42 | information you can use dd(1) to create the BFS image: | 
|  | 43 |  | 
|  | 44 | # umount /stand | 
|  | 45 | # dd if=/dev/rdsk/c0b0t0d0sa of=stand.img bs=512 | 
|  | 46 |  | 
|  | 47 | Just in case, you can verify that you have done the right thing by checking | 
|  | 48 | the magic number: | 
|  | 49 |  | 
|  | 50 | # od -Ad -tx4 stand.img | more | 
|  | 51 |  | 
|  | 52 | The first 4 bytes should be 0x1badface. | 
|  | 53 |  | 
|  | 54 | If you have any patches, questions or suggestions regarding this BFS | 
|  | 55 | implementation please contact the author: | 
|  | 56 |  | 
| Tigran Aivazian | 6968826 | 2006-12-13 00:35:14 -0800 | [diff] [blame] | 57 | Tigran Aivazian <tigran@aivazian.fsnet.co.uk> |