韓家標 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

--
Artem

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/lis...reebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"