Hi David!
I did not think of what others had done "first thing". I think I
simply saw my heart had made a decision.
Then you must be someone who doesn't take for granted the fact that blue is blue or 2+2=4. Why would others be right and what if there are better ways? Anyway it doesn't hurt to explore further, find new roads, reinvent the wheel and whatever it costs if at the end it gives you satisfaction.
I did look a bit at what other's had done and yes there are some
possible "pieces" there. I believe I am building a system.
What about reverse engineering what already exist and build something encompassing the main functions and adding what you find missing or that can be improved? If you get the source code it would be useful especially if you are a beginner in scripting. This afternoon I read a bit about autonomic computer systems and I really liked the idea of routines in systems which can analyse problems in real-time and determine on their own solutions. Think about how the immune system defends itself.
Hardware faults would require a special diagnostic card. In the event your processor, BIOS, RAM or any main IC are faulty on your Mboard, you would not be able to proceed and would waste less time removing the HDD and plug it in another healthy system. Then what about the add on cards, like network card, SCSI and AGP (HDD will not work if they are SCSI or IDE and their controller cards are faulty. No display and beep sound from boot up could mean a major fault on the VGA). Once we have a working hardware system we can proceed with the HDD with the OS and all the components installed around it.
Next would be the diagnostic of the HDD containing the starting MBR, partitions ( If the MBR is corrupted, would it be able to determine the system installed and load it?),then it would attempt to mount partitions (If they are corrupted, then there should be an exit). A Disk IO error should also exit the routine. This is where software could then takeover the diagnostics and problem solving
In some cases a VGA would need loading a native driver to get a better diagnostic; buffer errors, GPU errors, VRAM). Errors and faults on the network card would be detected the same way. I don't know whether a hardware diagnostic card can be beefed up with this capability (may be with a Linux embedded system)
I think I would start by writing the structured logic of how this software would audit a crippled system, compare with existing parameters, logs from the HDD, then determine the steps to proceed further (most important and difficult routine to write), call the necessary routines to back up important data(configurations, logs, personal data) from HDD, replace system files missing and restoring corrupted system files(using timestamps), load appropriate drivers for add on cards, self tests routine, then load configuration files used by subsystems, compare with current configuration file and rewrite it if necessary. This is one part of the problem solving. I'll email you later to review and add other ideas.
Your embedded idea is cool. I do note that Grub does have a fallback
option where if boot fails from one place it can use the fallback
choice, and BIOS already gives boot several options which could be
made "hot". Still, if the MBR is bad, or if the CPU or main Kernel
are bad it would take a separate device to have the brains to know how
to phone home or go to the haven.
NOW what about putting the hardware and software diagnostic on an embedded system?
How are your scripting skills? My first idea (little project) is to
make a simple script which copies the critical log files from /var/log
I am learning scripting now and am also a beginner. I wish you good luck and I am happy and willing to help. I might not be right in my logic and I probably extended the scope of your original idea and project. I am not in any way an expert and there is no shame in making mistakes because you learn from them and they make you better.
(after seeing if they will fit on the reception media chosen and
making decisions about how to handle the situation if they are not).
I am a beginner in scripting. Still, I will start tonight.
Gotta go to work now. I will type to you later.
Good Building!
Tod
Good designing and scripting!
David