LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (https://www.linuxquestions.org/questions/linux-general-1/)
-   -   Distribution of Linux Build (https://www.linuxquestions.org/questions/linux-general-1/distribution-of-linux-build-659781/)

Soren.Frederiksen 08-01-2008 11:33 AM

Distribution of Linux Build
 
I have a problem.

I have built a Linux system that I want to duplicate and distribute to various sites around the world. The problem is that the people at these remote sites do not know very much about Linux.

The solution I came up with was to build a "standard" Linux system, and then use partimage to make an image of all the partitions on this system. I then use sysrescue-cd to build a bootable CD and copy these images onto the CD along with a fairly simple script.

I then send this CD around to the various sites and they take a standard desktop, insert the CD into the system and boot from the CD. The CD starts up sysrescue-cd and execute my script which uses partimage to restore the image I created onto this new new system. the script then makes a few configuration changes to change the IP address and host name of the system, and then reboots the system, and now I have a new Linux system available to be used.

This whole process works just fine as long as it uses an IDE drive and I've built a number of systems that way.

However, when the system contains a SATA drive, I run into problems. It seems to boot from the CD fine, and copies the files onto the system without issue but it can't boot up following the install. I don't know the exact error that I'm getting since I have not done the actual install myself (this is all done remotely). My guess is that the controller and drivers used in the initial build are different from the controller and driver combination that would be required at the remote site.

Any idea as to what my problem might be? Is there any way to force the inclusion of numerous SATA drivers so I can be sure that the system will work at the remote site?

Or is there some other way to do this? I want to try and make this as simpel and "idiot proof" as possible. I want the person at the remote site to install a CD, boot from the CD and not have to know anything about Linux.

Any ideas.

Soren Frederiksen

TB0ne 08-01-2008 12:21 PM

Quote:

Originally Posted by Soren.Frederiksen (Post 3233401)
I have a problem.

I have built a Linux system that I want to duplicate and distribute to various sites around the world. The problem is that the people at these remote sites do not know very much about Linux.

The solution I came up with was to build a "standard" Linux system, and then use partimage to make an image of all the partitions on this system. I then use sysrescue-cd to build a bootable CD and copy these images onto the CD along with a fairly simple script.

I then send this CD around to the various sites and they take a standard desktop, insert the CD into the system and boot from the CD. The CD starts up sysrescue-cd and execute my script which uses partimage to restore the image I created onto this new new system. the script then makes a few configuration changes to change the IP address and host name of the system, and then reboots the system, and now I have a new Linux system available to be used.

This whole process works just fine as long as it uses an IDE drive and I've built a number of systems that way.

However, when the system contains a SATA drive, I run into problems. It seems to boot from the CD fine, and copies the files onto the system without issue but it can't boot up following the install. I don't know the exact error that I'm getting since I have not done the actual install myself (this is all done remotely). My guess is that the controller and drivers used in the initial build are different from the controller and driver combination that would be required at the remote site.

Any idea as to what my problem might be? Is there any way to force the inclusion of numerous SATA drivers so I can be sure that the system will work at the remote site?

Or is there some other way to do this? I want to try and make this as simpel and "idiot proof" as possible. I want the person at the remote site to install a CD, boot from the CD and not have to know anything about Linux.

I've had this problem too. I've used mkcdrec and mondoarchive in the past, and have recently heard about sysimager. The problem always is which modules are included in the 'mini kernel' it builds for the initial boot CD. There is some wiggle room, but it's difficult to navigate.

Sysimager seems to have a dedicated boot/installer, and you can build your own kernel with whatever modules you want in it. Haven't tried it yet, but it looks more robust, and might help you out. http://www.systemimager.org

salasi 08-01-2008 02:44 PM

Quote:

Originally Posted by Soren.Frederiksen (Post 3233401)
I have a problem...
I then send this CD around to the various sites and they take a standard desktop, insert the CD into the system and boot from the CD.

This is always potentially going to be a problem if the 'target' hardware can be different from the 'build' hardware. I'd have also expected you to run into difficulties with chipsets, but maybe your desktops (I'm assuming that by a desktop you mean hardware and not software) are sufficiently standardised (say all one flavour of Dell from a relatively narrow time period) that you haven't run into that.

Of course, if you are distributing something like knoppix, that does comprehensive hardware detection at boot and is probably robust to finding 'surprise' chipsets.


Quote:

Or is there some other way to do this? I want to try and make this as simpel and "idiot proof" as possible. I want the person at the remote site to install a CD, boot from the CD and not have to know anything about Linux.
Well, the 'obvious' way to do this is something like kickstart/autoyast/(temporarily forgotten what the debian equivalent is, but there is one and I think Ubuntu inherits that!). What this does is, in effect, automates the install of a standard set of apps (.rpms/.debs). The issues that come to mind are:
  1. Disk partitioning
  2. Localisation (languages, time zones) - but you already have that problem
  3. Networking
  4. Printers
There is no getting away from the fact that disk partitioning is a bit techie and can be done wrong, so it would be good to automate that. That would probably be easy if all of the disks were the same size, but something tells me this is either unlikely or unknown.
I'm guessing that you have just 'bitten the bullet' on localisation and let the user deal with it - it certainly should be possible to document that sufficiently that you would need a high level of incompetence to get it wrong (Gak! What have I just written!)
Networking might be trivial if all of the locations have a standardised networking set-up. Otherwise...
Printers shouldn't be a problem, but that depends on what infrastructure is there and how its set up.

Another possibilty that comes to mind is to always install webmin and have you sort out the minor problems remotely once a base install has been performed. I don't really like that suggestion (building in extra work), but it might be a fall-back if all else fails.

arizonagroovejet 08-02-2008 04:01 AM

Possibly the CD you makes expects that the harddisk will be located at /dev/hda, which is where an IDE drive would be and as a result it fails on machines with SATA drives because their harddisk is at /dev/sda. Just a guess.

As the previous poster said, I think you're going to be better off using something like autoyast or kickstart. You can then just send people the autoyast or kickstart file along with instructions on what to do with it and where to download the CD/DVD image for whatever distro you're using from. You will still run in to issue with /dev/hda and /dev/sda with this method but it should be quite easy to over come - just make an autoyast/kickstart file then take a copy of it and replace all cases of /dev/hda with /dev/sda then tell people to use the appropriate file for their system. Ideally autoyast (and probably kickstart) should be used in cases where all your hardware is identical, but we use it at work and have one autoyast file that handles machines with varying size harddisks and a mix of Intel and Nvidia graphics cards. You can work around some issues or different requirements for different locations using post-install scripts. For disk partitioning you'll probably want to set one of the partitions so that it fills whatever space is left on the disk after the other partitions have been created.

You've got a difficult task there, if you can pull it off it'll be something to put on your CV :)


All times are GMT -5. The time now is 06:10 AM.