Page 1 of 1

How can I configure large blocksize support on Puppy?

Posted: Wed 23 Jan 2008, 17:48
by davidlandy
Arrrrrgh! Help!! I'm a complete Linux noob (tho very experienced with another o/s, no names mentioned!) and am delighted to be finally getting to grips with something which doesn't come out of Redmond.

;-)

I've got Puppy running nicely on a free PC (thanks to my neighbour throwing out his old PC) in both 2.14 and 3.01 flavours, but neither will mount the large blocksize partitiions on my PVR's disks - and I'm trying to copy my recordings from one disk to another as I upgrade from 80gb to 160gb.

I read about Christoph Lameter's large block support patches, so started researching how to obtain them and re-compile the kernel (gulp!) but the git site didn't recognise the link to the patches so I had to give up.

:-S

Then I read that Linux 2.6 had the patches built in so I installed Puppy 3.01 - but that didn't help either!

:-S and double- :-S

I've now spent about a day or so stuck on this... I sure would appreciate some help.

Does anyone know, are the patches included in 2.6? If so, how do you switch them on? And if not, where can I get them from (and how could I recompile the Puppy kernel to get them to work)?

Phew! I feel much better for having gotten all that out. Hopefully someone out there kinows some answers!

In the meantime, thanks to all the Linux and Puppy folk for a great product that's fun to use, easy to install, and very very lightweight. (Athlon K7 1050, 512mb, 80gb).

David

Posted: Wed 23 Jan 2008, 18:36
by Flash
What have you tried so far, to transfer the files, and what happened? I don't mean what have you tried regarding the block size thing, but have you actually tried to transfer some of the files from one hd to the other?

Posted: Wed 23 Jan 2008, 18:42
by davidlandy
Thanks for the quick response. I've tried to mount the partition with the large block size, and it tells me it can't be mounted. That's all. I've assumed that if I can't mount it, I can't copy the files so I stopped there. David

Posted: Wed 23 Jan 2008, 19:03
by davidlandy
Dunno if this helps, but the post which pointed me down this path is here: http://www.digitalspy.co.uk/forums/show ... st21087416
(fourth post down, by whyzzyrd).

He says:

"The second partition (which I presume is mounted on /storage when the machine is booted) is ext2 with a 32k block size. To read this in Linux, the large block size patches from Christoph Hellwig [read Lameter] are required."

HTH.

Posted: Wed 23 Jan 2008, 19:24
by Flash
From here:
...the second partition was slightly different due to a larger block size of 32kb. This is so the large amounts of video data suffer less fragmentation on the disk....
I'd like to see a comparison of "fragmentation" caused by smaller block sizes. I doubt it's enough to warrant using an abnormally large block size. I suspect this is yet another idiotic nonstandard brought about by an excess of worry, in this case over fragmentation. Or perhaps it was really done to make it difficult to transfer the files?

Anyway, davidlandy, I don't know the answer to your question. Sorry. :)

Posted: Wed 23 Jan 2008, 19:35
by davidlandy
OK.

Thanks for trying, Flash.

:-)

Posted: Wed 23 Jan 2008, 23:16
by muggins
Hi David,

I know nothing about this but, being curious, had a quick google.

http://lwn.net/Articles/232757/

Also, why not send a query to the developer himself?

http://lameter.com/

Posted: Wed 23 Jan 2008, 23:42
by davidlandy
Interesting article, isn't it? Who'd've thought it could be so controversial... I'd already emailed the author earlier this evening to ask for binaries/instructions (great minds think alike), so let's see what comes back.

I did succeed in finding his patchset, at http://readlist.com/lists/vger.kernel.o ... 91010.html, but I've no idea how to turn that into patched source (surely not by hand?).

There are also some instructions by him on how to do it at http://readlist.com/lists/vger.kernel.o ... 91004.html - but I can't get the git link to work (says file not found), and I don't understand step 2 ("Enable LARGE_BLOCKSIZE Support"). I have found some instructions for step 3 ("compile kernel", gulp!), and I've seen a link to how to get the Puppy source, so I'm not a million miles away... but there are a few missing links.

In the meantime, I realised I was being a bit of an idiot (read noob) and that dd works even on unmounted drives, so I've put both drives (old and new) into my pc, booted from cd (Puppy 3.01), and ran dd if=/dev/hda1 of=/dev/hdb1 to copy the smaller partition, then dd if=/dev/hda2 of=/dev/hdb2 to copy the larger one, which is still running.... it's taking a looooooong time, not surprising I suppose for about 60gb of stuff. If I;d thought about it before I would have put them on separate IDE cables... doh!

The partition sizes are different on the 2nd partitions so I may have to do some re-jigging there but you never know, it may just work... fingers crossed!

David

PS. Discovered one source of my confusion: Linux v 2.5+ has support for large block devices and large file sizes; this is not the same thing as large blocksize support!

Posted: Thu 24 Jan 2008, 08:39
by davidlandy
Hi,

I got a reply from Christoph Lameter saying that there are no binaries available of the patched kernel, and he recommends I don't go down this road as kernel noob unless I have lots of spare time!

:-)

Would any kernel junkie out there be willing to lend a hand and compile a puppy kernel (2.14 or 3.01) with the patchset applied?

David

PS. Christoph also said that step 2 ("Enable LARGE_BLOCKSIZE Support") is done through "make menuconfig".

PPS. The dd worked, and all the recordings transferred fine, but it did something funny to the partition and the PVR thinks there is still the same amount of free space as on the smaller drive, though it does report the drive size correctly. Puppy's drive mounter reports the correct partition size, but other partition managers give varying results...