韓家標 Bill Hacker wrote: > Artem Kuchin wrote: >>>> Then did: >>>> >>>> newfs -J -b 8192 -f 1024 -g 50000 -h 20 -i 40960 /dev/twed1s1f >>>> >>>> gjournal load >>>> gjournal label -f /dev/twed1s1f >>>> tunefs -J enable -n disable /dev/twed1s1f >>>> mount -o noatime /dev/twed1s1f.journal /NEW/suit >>> >>> It's wrong order. See gjournal(8) manual page, EXAMPLES section. You >>> cannot create file system and then put journal on the same >>> partition. gjournal would warn you about that, but you used force >>> (-f) option. >> >> Here is what man says: >> >> Configure gjournaling on an existing file system, but only if >> gjournal allows this (i.e.: if the last sector is not already used >> by the file system): >> >> umount /dev/da0s1d >> gjournal label da0s1d da0s1e >> tunefs -J enable -n disable mount -o async /dev/da0s1d.journal /mnt >> mount /dev/da0s1d /mnt >> >> However, this simple does not work. >> gjournal label da0s1d da0s1e - WILL FAIL ON EXISTING FS! >> Need to use -f switch for this. >> >> So, those whole thing will look like this >> >> 1: newfs /dev/da0s1d here we have our EXISTING filesyetm >> 2: gjournal load >> 3: gjournal label -f /dev/da0s1d 4: tunefs -J enable -n disable >> /dev/da0s1d 5: mount -o async /dev/da0s1d.journal /mnt >> >> Now, when you start to fill /mnt you will get error=5 with offset >> out of range >> of the filesystem, beceause metadata for the filesystem is used from >> /dev/da0s1f (step1) but gjournal used 1GB for the journal. >> >> This error goes away if i add additional step between 4 and 5 >> 4.5: newfs /dev/da0s1d.journal >> >> question1: >> >> 4: tunefs -J enable -n disable /dev/da0s1d >> really must be for /dev/da0s1d or for /dev/da0s1d.journal >> >> question2: >> man says >> gjournal label da0s1d da0s1e && tunefs -J enable -n disable && mount >> -o async /dev/da0s1d.journal /mnt || mount /dev/da0s1d /mnt >> >> why there is no fs argument in tunefs? mistake? > > Ah .. does it not expect a raw block device / portion? With no > (other) fs type? osiris# tunefs -p usage: tunefs [-A] [-a enable | disable] [-e maxbpg] [-f avgfilesize] [-J enable | disable ] [-L volname] [-l enable | disable] [-m minfree] [-n enable | disable] [-o space | time] [-p] [-s avgfpdir] special | filesystem So either special or filesystem must be specified > Is this apparent conflict [ occuring | will occur] [because | > if/as/when ] the device has already been given a geom family 'label'. note here. The above example is related to ALRADY EXISTING filesystem. And my point is that IT NEVER WORKS W/O LOOSING DATA! The only was to create properly working journaled fs is to create from scratch. When i created partitions (lables) using sysinstall i had to do then cat /dev/zero > /dev/twed1s1f in otder to erase the label. The proper order seems to be: 1: do fdisk twed1 2: create labels (eg twed1s1f) 3: do cat /dev/zero > /dev/twed1sf into the partition which will be gjournaled 4: gjournal load 5: gjournal label -f /dev/twed1s1f 6: newfs -J /dev/twed1s1f.journal 7: tunefs -J enable -n disable /dev/twed1s1f.journal - I think this one is NOT NEEDED AT ALL! 8: : mount -o noatime /dev/twed1s1f.journal /NEW/suit After all these step journal fs works fine. I wonder how i can check journal usage and if it is really journaled at all :) -- ArtemReceived on Thu Nov 01 2007 - 07:37:11 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:20 UTC