saintless wrote:
There is no need to make debdog-install so complicated since the problems you have on your old hardware are not the same on mine much older hardware. I even doubt someone else will use DebianDog on old hardware like mine.
I have no problem to boot 512Mb and 8Gb flash drive using debdog-install latest version.
Hi Toni, fair enough, and I wanted to test the mechanism further before even modifying my own copy of debdog-install. Turns out my original 'solution' was wrong anyway (it is complex testing these things so easy to be in error...:-) so I have removed most of the txt from my earlier post above about this (so as not to confuse anyone or give them false hope..!). I have been testing all day to try and find out what is going on.
Note that my 'old' machine turns out to have BIOS from 2003. It is a Pentium M class machine, with 1GB RAM and 1.6GHz Pentium M cpu so a class of machine of which there are many around and all capable of running DebianDog well. Of course, only some such machines will have an equally rubbish BIOS...
Here are the results in case some other user finds them useful:
1. If I use debdog-install to install debiandog onto my 'tricky' 4GB usb, the resulting install seems to ALWAYS SUCCEED when I then boot from that usb on my newer computer.
2. However, even though it will work on newer computer, I can create the installation in such a way that it will ALWAYS FAIL when I try to boot it on my older computer, which is a Fujitsu Siemens Amilo laptop, 1.6GHz CPU with 1GB Ram, whose BIOS turns out to be American Megatrends from year 2003. The boot always fails on this machine if I use debian dog gparted (either alone or via debdog-install) to create the partitions on the usb I am installing to (but will still boot fine on my newer machines). I discovered this in further tests today.
3. I now know how I managed to get it working yesterday (it wasn't what I thought). I forgot that yesterday I had at one stage used Lubuntu fdisk and mkfs.ext4 to re-partition the usb and reformat it. I then took that Lubuntu formatted usb and, using debiandog and debdog-install made an installation. THAT INSTALLATION now booted fine also on my old machine. Further/many repeated tests today led me to realise that the Lubuntu fdisk was somehow adjusting the CHS values automatically such that the no. of heads was displayed as less than 16 after the partition for the installation had been made.
4. I thus tried to use fdisk and mkfs.ext4 on debiandog instead (having first used gparted to make an installation that wouldn't boot on my old machine. However, unlike on Lubuntu, debiandog's fdisk wasn't automatically changing the CHS values automatically. I thus used debiandog's fdisk in 'expert' mode to force the heads to a value less than 16 as follows:
fdisk /dev/sdb
Command: d to delete all the partitions (only was one).
Command: x to enter expert mode.
Command: h to adjust apparent number of heads to 2 (anything under 16 seemed to do the job actually).
Command: r to return to normal menu
Command: n to create a new partition 1 spanning the whole usb. Note that I repeated this experiment with start 2048 sectors (1MiB) and 16384 sectors (8MiB)
Command: w to write the new partition info to the usb and quit fdisk.
EDIT: Note that above can be done from single commandline command using sfdisk commandline options. You can find method in follow-up post below here:
http://www.murga-linux.com/puppy/viewto ... 198#770198
5. Running debdog-install with this already partitioned usb, I chose gparted, but ONLY to format the /dev/sdb1 partition (using ext4) - I repeated the experiment using mkfs.ext4 -O ^has_journal on another occasion with the same good results.
6. I then in debdog-install selected Directory 'DebianDog Folder' as /mnt/home/live and pressed install button to copy that to the /dev/sdb1 ext4 partition.
The resulting debiandog usb installation now boots on both my old machine and newer machines. Like I say, I have repeated this experiment many times, first using gparted to partition (which always created an installation that WILL NOT boot on my older machine, but will boot on my newer machine) and then using debdog fdisk in expert mode to change heads to 2 (from whatever they originally were). Sometimes, I used a starting offset of 1 MiB and sometimes 8MiB in fdisk creation of partition - on my machine that made no difference - just the number of heads mattered... Note that I didn't bother changing number of sectors or cylinders using fdisk in that expert mode - just the heads; I left fdisk to decide the sectors and cylinders it liked, and that worked fine.
Though you say your machine won't boot usb with 8MiB offset Toni (and that may well be the case), I would still be grateful if you could try the above method with 8MiB offset just to be sure gparted isn't the culprit really. At least now I don't need to use Lubuntu to fix the usb CHS values, though I don't know why the Lubuntu fdisk is cleverer than the debiandog one (since Lubuntu fdisk automatically adjusted no. of heads to <16 on creating the new partition on this 4GB usb stick).
WOW, that was a lot to write, and maybe makes no sense to anyone else, but it really worked on my old banger machine and repeatably this time (and repeatedly failed if used gparted to partition interestingly enough - but remember - ALWAYS booted fine on newer machine anyway - its just my older machine needed to avoid debiandog gparted for partitioning and needed fdisk to adjust head count value).
Must have installed 100 times today in all these tests! NOTE WELL, that I didn't need to copy vmlinux first afterall; apart from using fdisk as described (and not gparted to partition) the actual installation was just the standard debdog-install one.
EDIT: For some completeness I should mention again that my old Amilo laptop won't itself actually boot from usb (meaning no such option in its BIOS). Instead I have the 'wee' bootloader (grub4dos variant) installed in MBR of Amilo's harddrive and grldr and menu.lst on first partition of same hardrive, which is used to boot vmlinuz1, initrd1.xz, and all the other bits and pieces from the usb where live folder is.