|
I have two identical 250GB SATA hard drives in my machine that I set up in a RAID configuration when I initially got it...that was the first time I toyed with a RAID configuration, and if I remember correctly, the general steps were to set up the hardware RAID in the BIOS (the board is an ASUS A8N-E), use the F6/Load Driver option in the XP installer, and that's pretty much it.
For reasons I won't get into right now (suffice it to say I've reinstalled the OS three times after Nvidia's RAID driver decided to start dying on me at random times) I had given up on the idea and have been running the pair of drives independently for a few months now.
I definitely remember the disk I/O being significantly faster when the drives were RAIDed (obviously). On this machine I'd put performance above disk space, so I wanna setup the RAID configuration again (I'm gonna take a chance on newer RAID drivers). I've cleared out the second drive, and I'm not worried about backing up my data files (this is already part of my bi-monthly routine).
The thing holding me back is that I don't wanna have to go through an OS reinstall--my understanding is that it should be possible to setup the driver now with the OS running, re-do the configuration in the BIOS, reboot, and let it propagate the content of the first drive onto the second...is this assumption correct? Am I missing any step?
|
|
|
|
|
If you're lucky, the RAID controller won't screw around with the logical addressing of the bytes on the disk, and this will work. If you're unlucky, it will, and nothing will be readable. I'm assuming you're going with RAID 1 mirroring, both disks being identical.
Windows can boot from drives and controllers that appear, to the BIOS, to be regular IDE drives on the regular IDE controllers. Since you mention that you needed to use F6 to load a driver last time, I suspect that won't work for you.
What you should do is work out what driver you need for your controller and copy it to C:\ntbootdd.sys. Then you need to edit your boot.ini to use scsi syntax rather than multi . See this KB article[^] for more information. You probably want to start by copying the existing entry in boot.ini and modifying it since you'll want to be able to retry booting with the drive connected to the regular SATA channel if the RAID doesn't work (I don't know if you need to change the physical connection to turn RAID on, it's possible that if you're already connected to the RAID controller that you already have scsi syntax in boot.ini).
Otherwise I'd do a full backup, reinstall the OS and restore the backup.
You'll know you've got it wrong if you get a blue screen saying ERROR_INACCESSIBLE_BOOT_DEVICE during boot.
Stability. What an interesting concept. -- Chris Maunder
-- modified at 12:10 Wednesday 5th July, 2006
|
|
|
|
|
> I'm assuming you're going with RAID 1 mirroring, both disks being identical.
Yes. I'm looking for performance and redundancy (and no, I'm not under the impression that RAID-1 makes the drives work as backups of each other.
> What you should do is work out what driver you need for your controller
I believe it's nvraid.sys (or something similar); I know there's another file, but can't remember its name off the top of my head.
> and copy it to C:\ntbootdd.sys.
That's news to me, and starts to sound ...
> You'll know you've got it wrong if you get a blue screen saying
> ERROR_INACCESSIBLE_BOOT_DEVICE during boot.
Based on my past experience with RAID I have no doubt it won't take me any time at all to figure out whether I did anything wrong...
That's good stuff Mike; I definitely remember seeing the boot.ini file using the scsi(x) syntax--I should've kept a copy before nuking the system a zillionth time to reinstall it in a non-RAIDed configuration...Back then I decided and I didn't want anything to do with RAID for at least 6 months...
Still need to muster up the courage though...
|
|
|
|
|
Daniel Desormeaux wrote: > and copy it to C:\ntbootdd.sys.
That's news to me, and starts to sound ...
Windows has to find this driver in the boot cycle before it can load the registry hives which tell it which drivers to load. Therefore it has to have a fixed name and location. I guess it's something like it wouldn't have enough memory in real mode to locate and process the registry, or simply that they wanted to keep as much code out of real mode as possible. Once it switches to 32-bit (or 64-bit on x64) protected mode it needs to know how to control the drives, which it can only do through the BIOS for the primary and secondary controllers (IDE, S-ATA, or IDE emulation for SCSI and RAID controllers). This KB article[^] says that if you have both IDE and SCSI controllers, multi syntax only works for the IDE controllers. As far as the hardware detection is concerned, IDE/SATA RAID controllers in addition to the regular primary and secondary IDE controllers behave much like SCSI controllers.
Setup can also only do BIOS/BIOS emulation access unless you feed it a driver disk. It has a number of common drivers on the Windows CD but for anything less common or released after the CD was finalised, it needs a driver floppy. Hopefully Windows Vista will be able to accept a driver on CD or on a USB key, so that this reason for needing a floppy drive is eliminated.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
I'm sorry, I must ask... Has anyone ever
experienced something like this?
Day 1: My old PC dies. I lose all
my
floppy disk images of antique software,
which I had imaged myself. And I've lost
all my server logs.
Day 20: Laptop falls over, USB
pendrive
attached to it bends. I can recover the
data to the laptop's hard drive by bending
it a bit.
Day 22: Laptop's hard drive
crashes, I
lose all data on that hard drive, plus the
one that was on the pendrive, and all the
files for my latest
project.
Day 24: The first hard drive on the
other
computer crashes, I lose my Linux partition
and all the data on it, including the last
remains of my quarter-done game engine.
Now... What's this called? A coincidence?
An extreme bad luck wave? Hey, I don't
wanna live 2 days from now... Maybe the
other hard drive on the last comp that
broke will fail again, it's not even
bootable due to GRUB breaking my MBR. Ah -
I can't recover my WinXP hard drive now, I
ain't got no OS on it, and nowhere to put
the damned recovered data.
What about 2 days after that? I would
estimate
my GameBoy getting its screen bent? Or
maybe the rest of my PC's exploding? Or...
How about something falling over my CD
carrying cases and breaking half, or even
all of the CD's? No, God save me from
that.
Anyways, enough lamenting crap. I will
suicide tomorrow anyways, I would like to
know
though: Was this not a coincidence?
Maybe some static electricity running
around my room and hitting my PC's?
Please help me - I would cry, but I'm so
shocked/amazed/unsure that I can't.
PD: Maybe it's Skynet that's taking over? Maybe the Antichrist?
*** LAST MINUTE NEWS ***
Ha! I tried to post this on another site. I couldn't, I got server errors. When I come here, the WinXP CD doesn't boot. No. I utterly refuse to believe this is happening to me. What have I done? I even went to a IRC room where I thought I could get help, but a dude kept saying "u have worm or trogen", and I know he wasn't that retarded as to say that. Because, a virus cannot do that kind of things, can it? Like, physically burning a hard drive? I am dead. My soul is dead. This is my fall... Someone please help.
Note to moderators: If, for any reason, you must delete this message, send a copy to my email, I don't have a copy of this due to not having a hard drive. Thanks.
\|/ Thrift Store Floppy Collection \|/
(Server currently down due to mainteneance, aka comp not detecting monitor and acting weird)
|
|
|
|
|
|
Greetings
I need to fetch microprocessor specific information (brand, temperature, usage etc.) programmatically. Is it possible while I am using .NET. Any ideas on how to do this.
Soon helpful replies will be appreciated as I have to start this ASAP.
Thanks.
Ali
|
|
|
|
|
|
|
How about an article instead of a link?
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Hi..
I have learned the assembly language at University..and I understood that it is the second level language(after machine language(1,0)) but i dont know in which field is it important today and how? I mean using C# and C++ for example is easier and can perform all OS functions so for what could we need assembly language?!
"I am too late but i will never give up"
|
|
|
|
|
Aseembly langauge is of very limited use now. It's used to write an initial bootstrap compiler for a new cpu architecture. Some embeded systems are still largely programmed in asm because the market's too small to justify making a quality compiler for them. Beyond that it's still useful for the inner loops of a highly processor intensive/time critical application. The cavaet is that you need to be really good to outperform a modern compiler these days.
|
|
|
|
|
Dear dan neely,
Assembly language used widely
it is using very more in secuirty field and protocols programming
|
|
|
|
|
Largely used in embedded systems. Sometimes pure C could be a good choice for to save development's time, however it could not replace ASM completely. Have you ever heard of "SMALL IS BEAUTIFUL" phrase, its very nice to describe ASM.
Jup
|
|
|
|
|
Dear Anh_Tuan,
Yes , What you said is right,
But sometimes you can not do things in c or c++ , you must do these in Assembly Languages.
ala qunaibi
ala qunaibi
|
|
|
|
|
|
I've seen it used in game/graphics code, where millions of iterations through a loop can really benefit from some hand coded assembly, mainly to keep the frame rate up.
Haven't touched it myself, since the good old DOS days....
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
I have an older comupter...
AMD Athlon 700 mhz
256 Mb Ram
hard drive
blah,
blah
I recently put in a Geforce 400 MX 64 Mb graphics card..
When I set the resolution to 1200 x 768? the screen goes phsyco, but when I up the resolution more (you would think it would get worse) it works perfectly fine.
kinda wierd.... any reasons?
"C++ will solve any problem."
|
|
|
|
|
either the card or hte monitor don't like widescreen resolutions?
|
|
|
|
|
The default refresh rate supplied by the card is not compatible with monitor's.
Farhan Noor Qureshi
if (this == this) thow this;
|
|
|
|
|
If i know the device drive letter, for example, J:(CD-ROM), how could i get its SRB_HaId(ASPI host adapter number), SRB_Target(Target's SCSI ID) and SRB_Lun(Target's logical unit number)?
Enemy sighted, roger, go go go!
|
|
|
|
|
Do something like this (just plain C(++), no unicode support):
char Drive[MAX_PATH];
char m_UseDrive = 'j';
HANDLE hDrive;
sprintf(Drive,"\\\\.\\%c:", m_UseDrive);
hDrive = CreateFile(Drive, GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
if(hDrive == INVALID_HANDLE_VALUE) {
// Error
}
// These defines comes from devioctl.h and ntddscsi.h
// Include them if you've got them.
#define FILE_DEVICE_CONTROLLER 0x00000004
#define IOCTL_SCSI_BASE FILE_DEVICE_CONTROLLER
#define IOCTL_SCSI_GET_ADDRESS CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct _SCSI_ADDRESS {
ULONG Length; // Contains the length of this structure in bytes. .
UCHAR PortNumber; // Contains the number of the SCSI adapter.
UCHAR PathId; // Contains the number of the bus.
UCHAR TargetId; // Contains the number of the target device.
UCHAR Lun; // Contains the logical unit number.
}SCSI_ADDRESS, *PSCSI_ADDRESS;
// The real code starts here
#define MAX_DATA_BUFFER 2048
UCHAR dataBuffer[MAX_DATA_BUFFER];
ULONG bytesReturned;
BOOL bRetVal;
ZeroMemory(&dataBuffer[0], sizeof(dataBuffer));
// Get the device address information.
bRetVal = DeviceIoControl(hDrive, IOCTL_SCSI_GET_ADDRESS, NULL,
0, dataBuffer, sizeof(dataBuffer), &bytesReturned, FALSE);
if(bRetVal == TRUE && bytesReturned == sizeof(SCSI_ADDRESS)) {
// OK! Got the SCSI address!
PSCSI_ADDRESS ps = (PSCSI_ADDRESS)&dataBuffer[0];
// Check out ps
printf("PortNumber:%d, PathId:%d, TargetId:%d, Lun:%d",
ps->PortNumber, ps->PathId, ps->TargetId, ps->Lun);
}
CloseHandle(hDrive);
|
|
|
|
|
:-DThanks very very much, kakan. I get it.
|
|
|
|
|
Your are welcome. I'm glad to be of help.
Happy coding!
Kakan
|
|
|
|
|
I have a question on subject.
I need to setup a VPN and Remote Desktop for a small office LAN behind a router. Becaue of the router I would have to setup up some port forwarding and use static internal IPs instead of dynamic as it is now.
My question is won't that mean I can only make one computer able to accept remote deskop and likewise with VPN? At the moment that's not a probelm but it might be further down the road. What would be a solution to that? Buy/get some IP adresses from our ISP? Use some utility like RealVNC? Other ideas?
-- modified at 8:28 Wednesday 14th June, 2006
|
|
|
|
|