1 |
1275 |
phoenix |
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
|
29 |
|
|
loaded automatically, make sure that your kernel is compiled with kmod
|
30 |
|
|
support (CONFIG_KMOD) enabled. Beware that umount will not
|
31 |
|
|
deallocate /dev/loopN device if /etc/mtab file on your system is a
|
32 |
|
|
symbolic link to /proc/mounts. You will need to do it manually using
|
33 |
|
|
"-d" switch of losetup(8). Read losetup(8) manpage for more info.
|
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 |
|
|
|
57 |
|
|
Tigran A. Aivazian
|