HDD disk checking failed
Hello everyone
I have a HP MINI 110105TU ,today while booting up it suddenly showed disk error and further process was terminated just after the HP logon screen so tired with CTRL+ALT+DEL and restarted but still the same so while I tried to format my HDD it won't showed up while selecting the drive to install the OS and after a self diagnostic check at BIOS it failed with a number 7 written before failed.Even sometimes AMI screen pops up and check the HDD and say " capable status bad backup and replace"
My warranty has expired is there anyway I can restore or reset my HDD with any OS windows 7/xp ? Any how I can manage to fix this up ?
Thanks in advance.
I haven't seen a warning or error message with that exact wording on an HP system. Did you get that message before booting into Windows or after booting into Windows? It sounds like the imminent failure warning. If you are getting the imminent failure warning, it doesn't necessarily mean it is going to fail right away or is currently failed but it does mean that keeping a regular backup should be considered. I have a notebook that received the imminent failure warning error message about four years ago and it is still working today.
In any case, I am glad it is currently working for you. Thanks for updating the community.
↙-----------How do I give Kudos?| How do I mark a post as Solved? ----------------↓
Similar Messages
-
[SOLVED] Disk check failed at boot.
Hello,
I've got a problem with arch booting. It looks like my cpu doesn't like being left alone fat night. I powered it on today and what I get iss disk check failed error and reboot message. I've tried fsck-ing all partitions and everything seems to be allright. What's more I can mount everything when press ctrl+z when arch tries to reboot and system loading goes on. Any tips? What should I post?
Last edited by muchzill4 (2010-02-05 10:02:48)You have some messed up file systems. As if you didn't know.=O)
Have you changed fstab? Switched disks around? Try using uuid in fstab instead of '/dev/sdxx'.
Check this thread http://bbs.archlinux.org/viewtopic.php?id=89857
and use
ls -l /dev/disk/by-uuid -
Disk repair failed after using osx with hibernated windows/bootcamp with macdrive
hi,
i just realized i did something really,really stupid.
I forgot I just closed the lid of my MBP the last time I used windows/bootcamp (instead of shutting it down) and that triggered hibernation.
The next time I powered my MBP on, OSX startet automatically and I opened some of the same files that "were already open" in the hibernated windows (on osx main/boot partition, using macdrive in windows).
That (or resuming the hibernated windows later) probably led to some data corruption that prevents the osx volume from booting and neither the automatical repairing during booting nor disk utility (external hdd or recovery partition) is able to repair it. (not sure if there is any difference).
Booting in verbose mode shows the file names that were double-opened during repair attempts.
After booting osx from an external HDD, Disk utility fails mounting the main osx volume straight away, but succeeds with mounting it after a failed repair attempt.
I only have read acces then, though.
bootcamp partition is still working fine, btw
1. I wonder if it is possible to gain write access somehow and if deleting just those "double-opened" files/the containing folder (which is saved on dropbox btw, so I really wouldnt mind deleting them/it) would solve the whole problem or if i really have to reformat everything and spend 10+ hours to revert everything to the state before the data corruption. ?
2. if I have to reformat + reinstall, using migration assistant and the corrupted volume as source isn't a great idea, i guess? are there any options to exclude some specific folders of the user folders?
3. will the bootcamp partition work after reinstalling osx or do i have to winclone-it somewhere? checkdisk says the volume is OK btw.
many thanks!Hi 3tc, thnx for a tip.
One more question - did procedure solve also "file already in use" problem on win bootcamp?
thnx -
Disk order changes, grub problem, filesystem check failed
I'm having some problems installing Archlinux onto a machine with a lot of SATA drives, some connected by SATA cards. I have tried the 2009-08 netinstaller burned to CD, both -x86_64.iso and -x86_64-isolinux.iso, and I have the same problem with both.
I am installing from a USB-connect optical drive to an Intel X25-M 80GB SSD connected to a motherboard SATA port. I also have 2 HDDs connected to motherboard SATA ports, and 4 more HDDs connected to 4 SIL-based PCIe SATA cards. Additionally, I have a 4GB Patriot USB flash drive connected to a motherboard USB port. None of the HDDs have a bootable MBR, I am planning to create an mdadm RAID with the HDDs, but the USB flash drive is bootable. The motherboard is an Asus Z8PE-D18 with the latest BIOS, in AHCI mode.
First thing to note is that I was able to successfully install Fedora 12 linux to this machine in the exact configuration that I am trying to install Archlinux. I just installed Fedora 12 again last night, and it installed and loaded fine when I rebooted from the SSD.
So, the problems I am having with Archlinux. During install, I found that the SSD is showing up as either /dev/sde or /dev/sdf. This is odd since it was /dev/sda with Fedora. It makes sense for it to be /dev/sda, since it is on the first motherboard SATA port. But I proceeded with the Archlinux install, and grub seemed to detect the stage1 location properly -- root was set to (hda4,0) or (hda5,0) depending on whether the SSD was at sde or sdf. The kernel root was configured by UUID, so that does not depend on the drive order. Okay so far.
The problem shows up on reboot. The bootloader immediately complains that there is no such partition sde1 or sdf1. I drop into a grub command line and do
find /boot/grub/stage1
and it replies with (hd0,0), so I modify the boot line to root (hd0,0) and boot. Now it gets pretty far. Lots of boot messages scroll by. Here are some of the last few before the problem:
Waiting 10 seconds for device /dev/disk/by-uuid/22a35aa2-9799-4575-b1eb-456e819a1a26 ...
kjournald starting. Commit interval 5 seconds
EXT3-fs (sde1): mounted filesystem with writeback data mode
INIT: version 2.86 booting
::Starting UDev DAemon
::Triggering UDev uevents
::Loading Modules
::Waiting for UDev uevents to be processed
::Bringing up loopback interface
::Mounting Root Read-only
::Checking Filesystems
/dev/sdf1:
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock
**** FILESYSTEM CHECK FAILED
* Please repair manually and reboot. Note that the root file system
* is currently mounted read-only....
Give root password for maintenance
So I logged in as root and did an fdisk -l. The boot SSD was at /dev/sde. The menu.lst has root as (hd5,0), which would be sdf (which was correct during installation, but the disk order apparently changed). The kernel root= in menu.lst used by-uuid, and it at least points to the correct drive, which I suppose is why I was able to boot as far as I did, but when it tries to mount the root filesystem, it fails as shown above.
So, at initial grub boot, the grub stage1 is found at (hd0,0). During installation, the SSD was sdf, but after booting the kernel, the SSD is sde. What is going on?
One other experiment is that I pulled all the drives (including USB flash drive) except the SSD. The HDDs are in hot-swap slots, so that was easy. The PCIe SATA cards are still plugged into the PCIe slots. Then I was able to successfully install and boot Archlinux. But when I plugged the drives back in and rebooted, I had the same problem as detailed above.
Any suggestions on how to fix this?I had the same problem.
Last week I installed Arch onto a new SATA HD. I wanted to make sure the installation worked before I attached the other drives. On booting with the other drives attached, similar messages.
My solution:
Login as root.
Follow the instruction to mount / as read-write so you can make changes to the filesystem.
edit /etc/fstab and eliminate the references to /dev/sdxx and replace them with UUIDs or labels (as suggested above) as these won't change.
in /etc/fstab ...
# external data sources
#data /dev/sdb6
UUID=931d7107-1241-4d82-ad28-fcbe7af8ba69 /data ext3 defaults 0 0
#Documents /dev/sda9
/dev/disk/by-label/Documents /data/Documents ext3 defaults 0 0
Reboot and you should be good.
You can find the UUID of the drives by using
$ blkid
or you can set a drive label with e2label, assuming you are using ext2,3 or 4
Good luck. -
My HP Pavilion dv7 posted the following message:smart check failed - hard disk 1
php pavilion dv7
windows 7
hard disk 1 failed smart checkSMART is a feature in the hard drive, read by the BIOS of the computer, that is constantly measuring the drive's performance against a number of normal parameters, like the time it takes to move data from one place on the drive to another, and how many times data has to be moved around because there are bad places on the drive that will not hold data. If the drive's measurements go outside the normal range it is a sign the drive is failing and that gets reported to you, the end user, in a SMART error message. Kind of like a "check engine" light. It is a nice way of saying it is time to back up the data and buy a new hard drive.
-
'volume check failed', and disk utility can't fix it
I was planning to create a new bootable backup today and ran 'repair disk' from an install disk before cloning.
Unfortunately I grabbed a Panther disk by mistake, and only discovered it was the wrong disk as I took it out. By then, DU had run through the 'repair' - changing quite a few things - until it showed 'volume cannot be repaired'.
I've tried to correct them using DU from the Tiger install disk, but without any luck. DU shows:
+Invalid catalogue record type+
+Volume check failed+
+Error: the underlying task reported failure on exit+
+1 Volume could not be repaired because of an error+
My iBook still appears to be running perfectly, but obviously I need to repair the disk before I can clone it. Disk Utility can't do it - could DiskWarrior?
I'd really appreciate some advice on the options open to me, and the best way to do it.Success!
I powered down and ran DiskWarrior a 2nd time to rebuild the directory. This time I skipped the recommended Preview stage and went straight to confirming Rebuild. Everything now seems to be fine again. DU finds no faults with the disk, and the iBook feels significantly quicker and snappier.
Two things I learnt that might be helpful - the first is, it's easy to be careless for just a moment and end up in a time-consuming mess. It's the first time I've done it, and I won't be doing it again.
Second thing is, when people say DiskWarrior is slow to boot, they mean it - it took at least 10 minutes to show up on screen, which is unsettling. And the Preview stage, for me, was equally unnerving.
Still, it worked - superbly - all my data is intact, the iBook is overhauled and working faster than ever. -
Disk Utility Reports Volume Check Failed
I've been having some trouble with one of my two internal hard drives, so by mistake I ran Disk Utility from the Panther install disk on my PowerPC G5 running 10.4.10...I didn't realize until after I'd run Disk Repair that it wasn't the Tiger install disk I was using.
The Disk Repair Utility from the 10.3 install disk reported an "Invalid Leaf Record Count(it should be 41 instead of 210)". It also said that "2 HFS Volumes Repaired, 1 Volume Could Not Be Repaired". This was particularly puzzling since there were only two partitions on that internal hard drive. What was this other Volume it referred to?
Upon realizing that I was using an old CD, I ran Disk Utility from the Tiger install disk, and got a report "Invalid Catalog Record Type. Volume Check Failed."
Can anyone shed any light on what this all means, and how I can fix it?
Many thanks in advance!
-ZinaThanks, abrody, for your reply. First, I ws lucky in that there was no indication other than Retrospect reporting a problem with this, the client machine, so all data was available and the system seemed to be working fine (other than the error report).
Here's what worked for me: I ran Disk Repair (from the Tiger install disk)on all 4 partitions on my second internal HD, and came up with a clean report. I erased one of the partitions and, using SuperDuper, I cloned the system partition from the troublesome partition on the other internal HD. Then I ran Disk Repair from the install disk again, on the cloned partition, to be sure I didn't carry over the problem with the clone. It came up clean.
Then I erased the troublesome system partition and cloned the system back over from the trouble-free partition clone.
I ram Disk Repair again from the install disk, just to make sure everything came up with a clean bill of health, which it did.
But I'm going to keep a close eye on this internal HD, since I think it's possible it's failing. I always back up all my data every night, so at least I'm covered there.
Again, thanks so much for your reply and help.
Message was edited by: Zina
Message was edited by: Zina -
Mac OS X Boot failure... I cant Repair HDD with OS Disk,Shows Repair Failed. I cant backup my files from HDD. Backup failed. But I need my all datas from HDD. I dont want to format. Cant enter safemode also. anything else..
I installed XP @Bootcamp, I cant access my Mac HDD via XP..
What I do??? Please help me.. please...You can try DiskWarrior (about $100).
If that doesn't work, and if you have no backups at all, you might need to send your hard drive to Drive Savers or a similar service. It will cost a lot of money to get the data back, I'm sorry to say. -
Pavilion G6-1203ey: Hard Disk Test FAILED, but can still boot into Windows
Hello
I have HP Pavilion G6-1203ey laptop. After installing Windows (7 ultimate, 64 bit) and some drivers on it and after several restarts, it hanged at Windows logo and I had to turn it off with power button. Then after turning it on, it gave me the option to repair problems which are preventing it from starting up, from there I let it to restore the computer to an earlier restore point and after a restart the Windows was working again. After that I decided to do a hard disk check just in case.
The Hard Disk Self Test ended up with a message: Hard Disk 1 Full (305). Then I installed HP Unified Extensible Firmware Interface (UEFI) Support Environment and did hard disk from there. I chose the comprehensive test from the options, but it finished fairly quickly (in ~1 minute) with the following output:
Testing Drive: 1
Hard Disk SMART Check : PASSED
Hard Disk Short DST : FAILED
FAILURE ID : PTTU22-5T774L-MFPV4K-60S003
PRODUCT ID : A5Q15EA#B1R
Hard Disk 1
Hard Disk Test : FAILED
A bit more background:
The previous owner told me that the original HDD was faulty which is why he replaced it with this one last year. He said that other than that there has been no problems with the laptop. The Windows is working right now and this HDD is quite new so I would not have expected any problems with it, but the results from the previously mentioned tests seem troubling. Is there a reason to worry?
Thanks
This question was solved.
View Solution.Hi Alnuir,
Welcome to the HP Support Forums, I hope you enjoy your experience! To help you get the most out of the HP Forums I would like to direct your attention to the HP Forums Guide First Time Here? Learn How to Post and More.
I read your post and looked into the failure ID that you posted regarding the failed Short DST test. That error is indicating a hard disk failure meaning that if it hasn't failed it might soon. If everything is working I would considering backing up your data on a regular basis just to be safe. You could have a local technician take a look at the hard drive to see how close it is to full failure.
Thank you,
Please click “Accept as Solution ” if you feel my post solved your issue.
Click the “Kudos Thumbs Up" on the right to say “Thanks” for helping!
Thank you,
BHK6
I work on behalf of HP -
How can I stop a task sequence if a custom HTA preflight check fails?
In our currently deployment method, we launch an HTA program before initiating the OSD process. This is only when run from the RAP menu, not via PXE. When a user initiates OSD through that menu, they get a message prompting them to close Outlook, and
a countdown of 5 mins, then OSD starts. They also have the ability to click on an 'OK' button to proceed on their own.
I've created a new script which checks WMI if Outlook and/or OCS are open, and if the machine is running on battery, spit out a "Failed" response and stop the HTA. I've also added a "recheck" button to re-do the check, and an 'OK
button if people jsut want to continue.
I'm curious if there is a way to prevent the task sequence from continuing if any of those conditions arent met. Currently it just pops up and says "Failed, Cannot conitue", but if they close the window, the task sequence thinks the program
has run, and the OSD migration starts. I'd like to be able and get the script to cancel the OSD process if a check fails.
Has anyone had success with this, using WINXP? I'd use the MS pre-flight check but it's only for WIN7.Interesting. Thanks for the response. Is there anybody out there that can assist with VBS part of the solution?
Here's the code I'm working with. Currently the battery piece isnt working as it should but I can figure that our, eventually. I'd like to get Jason's proposed solution in the code. If this isn't the right place, I'll take this somewhere
else.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>OSD Preflight checks</title>
<HTA:APPLICATION
APPLICATIONNAME="OSD Preflight checks"
ID="objOSDPreReqChecks"
SCROLL="no"
CONTEXTMENU="no"
SINGLEINSTANCE="no"
MAXIMIZEBUTTON="no"
MINIMIZEBUTTON="no"
WINDOWSTATE="normal"/>
<!-- #region STYLEs-->
<style type="text/css">
H1{color:Black;text-align:center;font-family: Arial, Helvetica, sans-serif;font-size: 26px;}
p{font-family:"Arial";font-size:10px;}
fail{color:Red;text-align:center;}
.Version {float:left; font-size:1.0em;font-style:italic;color:#888888;font-weight:bold;}
.Header1 {width: 180px; text-align: right;font-weight:bold;}<!-- '1st column heading -->
H2 {font-family: Arial, Helvetica, sans-serif; text-align: center;}
H3 {font-style: italic;}
.style2 {width: 180px; text-align: left;}
.Header2 {width: 150px; text-align: right;font-weight:bold;}<!-- '2nd column heading -->
.style4 {width: 410px; text-align: left;}
.StatusBar
font-family: Arial, Helvetica, sans-serif;
text-align: center;
.hidden {display: none; visibility: hidden;}
</style><!-- #endregion -->
</head>
<script language="VBScript" type="text/vbscript">
'======================================================================================
' Script
' Version
' Purpose To check a machine is suitable for taking an OS deployment
'======================================================================================
'Features
' Modular design
' Verbose "Debug Mode"
' In-built data validation
' Custom error handling
' Custom error codes - 90x0
' Generic WMI handler
'BUGfix: Change CLng to CDbl to avoid overflow (in GetRAM)
'fixed - moved head section to top to become head > script > body
'fixed - fCheckModel display with leading ,
'fixed - fgetmodels dictionary list
Option Explicit
' #region GLOBAL DECLARATIONS: Persistent fold region
'======================================================================================
'GLOBAL Vars
'Things to just display (in GUI)
Dim strRAM
Dim strCPUInfo
Dim strCPUName
Dim strCPUDesc
Dim iCPUCount
Dim iCPUCoreCount
Dim iRAM
Dim strBIOSver, strBIOSDate, strBIOSInfo
'Time related
Dim TimerInterval 'timer to refresh HTA at start
Dim iTimer 'abort timer
Const iAbortTimeout=300000 'delay before window closes (in milliseconds)
Dim pbTimerID
Dim pbHTML
Dim pbWaitTime
Dim pbHeight
Dim pbWidth
Dim pbBorder
Dim pbUnloadedColor
Dim pbLoadedColor
Dim pbStartTime
'Dictionary
Dim objModelsDict,colKeys,strKey 'models
Dim objApprovedMakesDict
'Misc GLOBAL vars
Dim blnDebug 'set TRUE to trigger debug mode
Dim bAbortBuild 'Boolean flag to abort or not abort
Dim strTemp 'throwaway/scratch
Dim strNamespace 'wmi default namespace for ANY machine
Dim strComputer 'wmi reference to current machine, just .
Dim strService 'WMI service
Dim strQuery 'custom WQL
Dim ErrMsg 'custom error messages
Dim iErrMode 'State machine for error mode
Dim lFlags 'WMI flag
Dim strDisks
'Pre-requisites - things that will cause build to abort if values do not meet spec
Dim strHTAVendor 'Make of hardware
Dim strHTAVendorState
Dim strHTAModel 'Model of hardware
Dim strHTAModelState 'Model state
Dim strHTARAM 'RAM
Dim strHTARAMState 'RAM state
Dim strHTACPUSpeed 'Processor speed
Dim strHTACPUCores 'Number of cores
Dim strHTACPUFullInfo 'CPU + cores
Dim strHTAHDD 'Disk info
Dim strHTAHDDState 'Disk state
Dim strHTACheckRAW 'NTFS check
Dim strHTAArchitecture 'Processor support
Dim strHTAProduct 'Product ID
Dim strHTAOutlook 'Outlook running
Dim strHTAOutlookState 'Outlook state
Dim strHTABattery 'Battery check
Dim strHTABatteryState 'Battery state
'for WQL filters
Dim strWQLPCInfo 'Pre-req - (1) for various inc. domain role (servers)
Dim strWQLRAM 'Pre-req - (2) RAM
Dim strWQLCPU 'Pre-req - CPU speed string (not int)
Dim strWQLBootOrder 'Pre-req - Boot order string
Dim strWQLSATAMode 'Pre-req - HDD mode
Dim strWQLGenericBIOS
Dim strWQLCPUCount 'Pre-req - how many CPUs
Dim strWQLCPUInfo
Dim strWQLFSType 'Pre-req - Check HDD not RAW (i.e. is NTFS)
Dim strWQLDisks 'Disks
Dim strWQLChassis 'Machine type
Dim strWQLID 'Unique code from OEM
Dim strWQLProc 'is Outlook running = False
Dim strWQLBattery 'is on Battery = False
'State
Const cProblem = " Problem!"
Const cRunAgain =" RunCheck: Run System Check Again"
Const cSuccess = " Success!"
Const cPassed=" Pass"
Const cFail=" Fail"
'Pre-requisite to check: SET VALUES HERE vvvvvvvvvvvvvvvv
Const cApprovedOEM="Hewlett-Packard"
Const LegacyOEM1="Dell Inc."
Const LegacyOEM2="IBM"
Const cMinimumMemoryMB = 1000 'RAM in MB
'Const cMinimumMemoryMB = 1000000 'force fail test data RAM in MB
Const cMinFS="NTFS"
' Const cMinFS="HPFS" 'force fail test data
Const iMinCores=1
'Const iMinCores=10099 'force fail cores test data
Const iMinCPUSpeed=2 '20 'in GHz
'Const iMinCPUSpeed=90000 'in GHz
Const iMinCPUArch=32
'Const iMinCPUArch=64
' #endregion
' To hide anything use ID.className = "hidden", to show set to "", e.g. NotFoundArea.className = "hidden"
Sub Window_Onload
Err.Clear
VersionSpan.InnerText = objOSDPreReqChecks.Version 'Get version
self.focus
self.moveTo 100,100 'Move window top left
StatusBar.InnerText="Validating machine..."
document.body.style.cursor = "wait" 'hourglass cursor
'Call PreflightChecks 'use for testing as a VBS only, otherwise HTA timer will call below
TimerInterval = window.setInterval("PreflightChecks",10)
End Sub
Function PreflightChecks
' #region HEADER NOTES: Persistent fold region
'Version history
'ver 5 OCTOBER 2011 - added error handler
'ver 3rd Nov - removed HPonly queries
'// Solution: Custom Script for use with MDT - Adapted from hardwareinfo.vbs Mikael Nystrom – http://deploymentbunny.com
'Typical BIOS content
'Processor Speed = 2133/1066 MHz
'Boot Order = Network Controller,ATAPI CD-ROM Drive,USB device,Hard Drive,Diskette Drive,PnP Device #2,PnP Device #3,PnP Device #4,PnP Device #5,PnP Device #6,PnP Device #7,PnPe #8,PnP Device #9,PnP Device #10,PnP Device #11
'SATA (disk) mode: *IDE,--,RAID,-- or IDE,*AHCI,RAID
'On Error Resume Next
' #endregion
' #region CONSTANTS: Persistent fold region
'======================================================================================
'Fields available in HP BIOS
Const sAsset = "Notebook Asset Tag"
Const sOwner = "Notebook Ownership Tag"
Const sMan = "Manufacturer"
Const sNoteModel = "Notebook Model"
Const sCPU = "Processor Type"
Const sCPUSpeed = "Processor Speed"
Const sRAM = "Memory Size"
Const sModel = "Product Name"
Const sBIOSName ="System BIOS"
Const sBIOSVer = "BIOS Version"
Const sBIOSDate = "BIOS Date"
'Other BIOS stuff you could use too
'Const sOwnerTag = "Enter Ownership Tag"
'Const sBIOS = "PCID"
'Const sBIOS = "Define Custom URL"
'Const sBIOS = "Set Alarm Time"
'Const sBIOS = "PCID Version"
Const TextMode="1" 'text case sensitive for dict obj
'WMI core constants
Const wbemFlagReturnImmediately = 16 'wmi - Causes the call to return immediately.
Const wbemFlagForwardOnly = 32 'wmi - Causes a forward-only enumerator to be returned.
'Forward-only enumerators are generally much faster and
'use less memory than conventional enumerators, but don't allow calls to SWbemObject.Clone_
'Advisory config values - as in "you want to the change these"
Dim strHTABootOrder
Dim strHTASATAMode
'Dim strHTACPU
' #endregion
'======================================================================================
' #region WQL: Persistent fold region
lFlags = wbemFlagReturnImmediately + wbemFlagForwardOnly
'Queries of things to check (HP)
strWQLBootOrder = "select Name, value from HP_BIOSSetting where Name='Boot order'"
strWQLSATAMode = "select Name, value from HP_BIOSSetting where (Name='SATA emulation' or name='SATA device mode')"
strWQLDisks ="SELECT * FROM Win32_DiskDrive where mediatype like 'Fixed%hard disk%'" 'win32_disk only avail after W7
strWQLFSType ="SELECT * from Win32_LogicalDisk where DriveType='3'" 'only bother with HDDs
'Generic WMI query strings
strWQLGenericBIOS="SELECT Manufacturer,SMBIOSBIOSVersion,ReleaseDate FROM Win32_BIOS WHERE PrimaryBIOS = True"
strWQLCPUCount= "SELECT NumberOfProcessors,NumberOfLogicalProcessors from Win32_ComputerSystem"
strWQLCPUInfo="SELECT Name,DataWidth,description,MaxClockSpeed,NumberofCores,NumberOfLogicalProcessors from Win32_Processor"
strWQLPCInfo="SELECT Domain,DomainRole,SystemType,Manufacturer,Model,TotalPhysicalMemory FROM Win32_ComputerSystem"
' strWQLPCInfo="SELECT Domain,DomainRole,SystemType,Manufacturer FROM Win32_ComputerSystem"
strWQLChassis="SELECT ChassisTypes from Win32_SystemEnclosure"
strWQLID="SELECT IdentifyingNumber,UUID from Win32_ComputerSystemProduct"
strWQLRAM="SELECT * FROM Win32_PhysicalMemory"
strWQLProc="SELECT * FROM Win32_Process"
strWQLBattery="SELECT * FROM BatteryStatus Where Voltage > 0"
' #endregion
' #region MAIN algorithm
'=====================================================================================================
' MAIN
'Algorithm
'1) Check make (vendor)
'2) Check model (in list)
'3) Check RAM >x
'4) Check HDD TYPE (HDD is not RAW)
'5) Check CPU architecture
'6) Check outlook
'7) Check battery
'=====================================================================================================
'Initialise
window.clearInterval(TimerInterval) 'Reset timer to 0
' blnDebug=True
blnDebug=False
bAbortBuild=False 'default to DON'T abort
' bAbortBuild=True
'Build list of approved vendors
Set objApprovedMakesDict = CreateObject("Scripting.Dictionary")
objApprovedMakesDict.comparemode=VBTextCompare
objApprovedMakesDict.add cApprovedOEM,"OK"
objApprovedMakesDict.add LegacyOEM1,"OK"
objApprovedMakesDict.add LegacyOEM2,"OK"
objApprovedMakesDict.add "Lenovo","Testdata"
If blnDebug Then Stop
'1) all machines check make
strHTAVendor=fCheckVendor(strWQLGenericBIOS) 'check vendor in BIOS - if vendor not approved ABORT without proceeding
If bAbortBuild=True Then
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "FATAL ERROR - goodbye cruel world"
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript")
Else
StatusBar.InnerText="Vendor: " & strHTAVendor & vbTab & " " & strHTAVendorState
'2) Discover current Model
strHTAModel=fGetModelName(strWQLPCInfo) 'get model name from WMI
strHTAModel=fUniversalCheckData(strHTAModel,"'Discover Model - fGetModelName'") 'validate
Call fGetModels 'get list of all valid models (from text file)
strHTAModel=fCheckModel(strHTAModel)
'2a) Model number (optional)
strHTAProduct=fGetComputerSystemProdIDNumber(strWQLID) 'manufacturer's product ID
strHTAProduct=fUniversalCheckData(strHTAProduct,"'Discover ID - fGetComputerSystemProdIDNumber'")
' StatusBar.InnerText=StatusBar.InnerText & VbCrLf & vbTab & "Product Code: " & vbTab & strHTAProduct
'3) Check installed Memory
strHTARAM=fGetRAM(strWQLRAM) 'find RAM size
strHTARAM=fUniversalCheckData(strHTARAM,"'Detect RAM - fCheckRAM'")
strHTARAM=fCheckRAM(strHTARAM) 'check RAM meets req
If strHTARAMState=cFail Then Exit Function
'4) Disk format IS NTFS
strDisks=fGetDrives(strWQLFSType) 'Get formatting info for all drives
strHTACheckRAW=fUniversalCheckData(strDisks,"'Detect filesystem - fCheckNTFS'") 'Validate data
strHTACheckRAW=fCheckNTFS(strDisks) 'Check FS format is acceptable (not RAW)
If strHTACheckRAW=cFail Then Exit Function
'Generic CPU calls
strHTACPUFullInfo="CPUs:" & fGetCPUInfo(strWQLCPUInfo) & " with CPU cores:" & iCPUCoreCount
strBIOSInfo="BIOS version: " & strBIOSver & ", dated " & strBIOSDate
'5a) CPU Speed check (info from http://www.robvanderwoude.com/wmiexamples.php)
strCPUInfo=WMI(strWQLCPUInfo,strNamespace) 'Get CPU details
strTemp=split(strCPUInfo,"@"): strHTACPUSpeed=strTemp(1)
strHTACPUSpeed=fUniversalCheckData(strHTACPUSpeed,"'Check processor - fCheckCPUSpeed'") 'Validate data
strHTACPUSpeed=fCheckCPUSpeed(strHTACPUSpeed) 'Check CPU clock speed
'5b) cores check
strHTACPUCores=fUniversalCheckData(iCPUCoreCount,"Check core count - fCheckCores") 'Validate data
iCPUCoreCount=fCheckCores(iCPUCoreCount) 'pass or fail?
'5c) CPU address width
strHTAArchitecture=fUniversalCheckData(strHTAArchitecture,"Check core count - fCheckCores") 'Validate data
strHTAArchitecture=fCheckCPUArch(strHTAArchitecture)
'6) Check outlook
strHTAOutlook=fCheckProcess(strWQLProc)
'7) Check Battery
strHTABattery=fCheckBattery(strWQLBattery)
'end checkss
document.body.style.cursor = "default"
'Display hardware values in GUI (in table)
Vendor.innerhtml = strHTAVendor 'Use str...var..STATE if you want Pass/fail text instead
Model.innerhtml = strHTAModel
Product.innerhtml = strHTAProduct
RAM.innerhtml = strHTARAM
CPUspeed.innerhtml = strHTACPUSpeed
CPUInfo.innerhtml = strHTACPUFullInfo
HDDFS.innerhtml = strHTACheckRAW
CapableArchitecture.innerhtml=strHTAArchitecture
BIOSversion.innerhtml = strBIOSver
BIOSDate.innerhtml = strBIOSDate' CPUName.innerhtml = strCPUDesc 'GetCPUName
End If
'======================================================================================
' #endregion
End Function
'generic WMI queries, by field and namespace
Function WMI(strQuery,strNameSpace)
'Aim: generic WMI calls
'return value of BIOS
On Error Resume Next
Dim colItems,objItem
Dim objWMI
Const strService = "winmgmts:{impersonationlevel=impersonate}//" 'binding to WMI
Const strComputer = "." 'this machine
Set objWMI = GetObject(strService & strComputer & strNamespace) 'GLOBAL wmi
Set colItems = objWMI.ExecQuery(strQuery,,lFlags)
For Each objItem In colItems
If Err Then
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "WMI query: " & strQuery & " in " & strNamespace & objItem.Name
Call ErrHandler("WMI error " & strQuery,1)
Else
WMI=objItem.Name 'Return value
End If
Next
End Function
Function fGetModelName(strWQLPCInfo)
'Aim: Get model name from BIOS - WMI field sometimes varies if laptop, so try two
'Return STRING: Model string from BIOS or "UNKNOWN" if null
On Error Resume Next
Dim colPCInfo,objPCItem
Dim strModel
Set colPCInfo = GetObject("winmgmts:").ExecQuery(strWQLPCInfo,"WQL",lFlags)
If Err Then
Call ErrHandler("fGetModelName: Error querying WMI " & strWQLPCInfo,2)
Else
For Each objPCItem In colPCInfo
If Not IsNull(objPCItem.Model) Then
strModel=objPCItem.Model
' iRAM=objPCItem.TotalPhysicalMemory
Else
If (strHTAVendor=cApprovedOEM And IsLaptop = True) Then ' resort to HP specific query for older laptops
'Notebook
strModel=QueryHPBIOS(sNoteModel)
if strModel="" then strModel=QueryHPBIOS(sModel) 'try alt value
Else
strModel=QueryHPBIOS(sModel)
End If
End If
Next
End If
If strModel = "" Then
fGetModelName = "UNKNOWN"
Model.style.visibility="hidden"
Else
fGetModelName=strModel
End If
End Function
'====================================================
'====================================================
Function fGetRAM(strQuery)
'Aim: get RAM installed. NB Win32_ComputerSystem::TotalPhysicalMemory may not be accurate
'Return integer
On Error Resume Next 'equiv to Err.Clear
Dim colItems, item
Dim iTotalMemory
Set colItems = GetObject("winmgmts:").ExecQuery(strQuery,"WQL",lFlags)
If Err Then
Call ErrHandler("fGetRAM: Error querying " & strQuery,2)
Else
iTotalMemory = 0
For Each item In colItems
iTotalMemory = iTotalMemory + CDBL(item.Capacity)/(1024^2)
Next
End If
If iTotalMemory = "" Then
fGetRAM = "RAM UNKNOWN"
RAM.style.visibility="hidden"
Else
fGetRAM=iTotalMemory
End If
End Function
'====================================================
'====================================================
Function fGetCPUInfo(strQuery)
'Aim: query WMI for CPU info - number and number of cores
'Return: function=CPU count, var for the cores: iCPUCoreCount, strHTAArchitecture, strCPUDesc
On Error Resume Next
Dim colItems, objItem
Dim NumberOfProcessors
Set colItems = GetObject("winmgmts:").ExecQuery(strQuery,"WQL",lFlags)
If Err Then
Call ErrHandler("GetCPUInfo: Error querying " & strQuery,2)
Else
For Each objItem In colItems
If Err Then
Else
If Not IsNull(objItem.NumberOfCores) Then
NumberOfProcessors = Trim(objItem.NumberOfCores) 'NumberOfProcessors
End If
If Not IsNull(objItem.NumberOfLogicalProcessors) Then
iCPUCoreCount = Int(Trim(objItem.NumberOfLogicalProcessors))
End If
If Not IsNull(objItem.DataWidth) Then
strHTAArchitecture=Trim(objItem.DataWidth) & "-bit"
End If
If Not IsNull(objItem.description) Then
strCPUDesc = Trim(objItem.description) 'cpu name
End If
End If
Next
If NumberOfProcessors = "" Then
NumberOfProcessors = "UNKNOWN"
End If
fGetCPUInfo = Int(NumberOfProcessors)
' iCPUCoreCount = Int(NumberOfLogicalProcessors)
End If
End Function
'====================================================
'====================================================
Function fGetComputerSystemProdIDNumber(strWQLID)
'Aim: Get UUID from Win32_ComputerSystemProduct
'Return: great big integer
Dim colSys,objSys
Dim strUUID
On Error resume next
Set colSys = GetObject("winmgmts:").ExecQuery(strWQLID,"WQL",lFlags)
If Err then
Call ErrHandler("fGetComputerSystemProdIDNumber: Error querying " & strWQLID,2)
Else
For Each objSys In colSys
If Not IsNull(objSys.IdentifyingNumber) Then
strUUID = Trim(objSys.IdentifyingNumber)
End If
Next
If strUUID = "" Then
fGetComputerSystemProdIDNumber = "UNKNOWN"
Else
fGetComputerSystemProdIDNumber = strUUID
End If
End If
End Function
'=================================================================================
'=================================================================================
Function fGetDrives(strQuery)
Dim colDisks,objHDD
Dim strDriveType, strDiskSize, strDisk
Dim strDiskFSType
Dim iGBUnits
On Error Resume Next
iGBUnits=1073741824
Dim iRAW
iRAW=0
Set colDisks = GetObject("winmgmts:").ExecQuery(strQuery)
For Each objHDD In colDisks
Select Case objHDD.DriveType
Case 1 strDriveType = "Drive could not be determined."
Case 2 strDriveType = "Removable Drive"
Case 3 strDriveType = "Local hard disk."
Case 4 strDriveType = "Network disk."
Case 5 strDriveType = "Compact disk (CD)"
Case 6 strDriveType = "RAM disk."
Case Else strDriveType = "Drive type Problem."
End Select
strDiskFSType = objHDD.FileSystem
'Find C
If objHDD.Name="C:" Then
If isNull(objHDD.FreeSpace) Then
If blnDebug=True then Call ErrHandler("ALERT!! Volume " & objHDD.Name & "is RAW",1) 'Abort/clean
fCheckDrives="ALERT!! Volume " & objHDD.Name & "is RAW"
End If
End If
strDiskSize = Int(objHDD.Size /iGBUnits) & "GB" 'calc size of disk
strDisk = strDisk & VbCrLf & "Vol " & objHDD.Name & " (" & strDriveType & ") size: " & strDiskSize & " (free: " & Int(objHDD.FreeSpace /iGBUnits) & "GB), " & strDiskFSType
fGetDrives=strDisk
Next
If (Err.Number <>0) Then
Call ErrHandler("WMI Property Query Error: [" & Err.Number & "]",2)
fGetDrives = -1
Exit Function
End If
End Function
'=================================================================================
'=================================================================================
Function fUniversalCheckData(varData,strStage) 'template
'Aim: Check value passed...
'is not blank
'is in range x..y
'spelt OK
'is in a list
'format is text, numeric
'return: string: the original value
On Error Resume Next
Dim Err
if blnDebug Then StatusBar.InnerText = StatusBar.InnerText & VbCrLf & "Validating " & strStage & " data..."
If Err Then
Call ErrHandler("WARNING: Error discovering value in " & strStage,2) '1=Quit,2=Warn
strHTAModel="Unknown"
Else
Select Case varData
Case IsEmpty(varData) Or IsNull(varData)
Call ErrHandler("WARNING: Error in "& strStage,2) '1=Quit,2=Warn
fUniversalCheckData="Unknown"
Case IsNumeric(varData)
If varData<0 Then
Call ErrHandler("WARNING: Value negative"& strStage,2) '1=Quit,2=Warn
fUniversalCheckData="Unknown"
End if
' & varData &
Case IsDate(varData)
Case Else
fUniversalCheckData=varData 'Data OK - return value unchanged
End Select
End If
End Function
'=================================================================================
'Checks - follow if true DO, if false warn/abort
'=================================================================================
Function fCheckBattery(strQuery)
'Aim: Find if battery is running
'Return pass/fail
On Error Resume Next 'equiv to Err.Clear
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Dim colItems, item
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
Set colItems = objWMIService.ExecQuery("SELECT * FROM BatteryStatus Where Voltage > 0", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each item In colItems
if objItem.PowerOnline = True Then
strHTABattery=objItem.PowerOnline
strHTABatteryState = cFail
Err.Raise 9010,"fCheckBattery",strHTABattery & " Laptop running on battery. OSD Cannot continue."
Call ErrHandler(ucase(strHTABatteryState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "FATAL ERROR - Laptop on Battery. Please plug into an outlet before proceeding."
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript")
Else
strHTABatteryState = cPassed
End if
Next
fCheckBattery=strHTABattery
End Function
'====================================================
Function fCheckProcess(strQuery)
'Aim: Find if outlook is running
'Return pass/fail
On Error Resume Next 'equiv to Err.Clear
Dim colItems, item
Set colItems = GetObject("winmgmts:").ExecQuery(strQuery,"WQL",lFlags)
For Each item In colItems
if item.Name = "OUTLOOK.EXE" Then
strHTAOutlook=item.Name
strHTAOutlookState = cFail
Err.Raise 9010,"fCheckOutlook",strHTAOutlook & " running. OSD Cannot continue."
Call ErrHandler(ucase(strHTAOutlookState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "FATAL ERROR - Outlook Running, please close outlook before proceeding."
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript")
Elseif item.Name = "communicator.exe" Then
strHTAOutlook=item.Name
strHTAOutlookState = cFail
Err.Raise 9010,"fCheckOutlook",strHTAOutlook & " running. OSD Cannot continue."
Call ErrHandler(ucase(strHTAOutlookState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "FATAL ERROR - Communicator Running, please close OCS before proceeding."
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript")
Else
strHTAOutlookState = cPassed
End if
Next
fCheckProcess=strHTAOutlook
End Function
'====================================================
'1 - Make
Function fCheckVendor(strVendor)
'Aim: Check make is one the OS/build is designed For
'Return: STRINGS for "Make", BIOS version and BIOS date (generic): strHTAVendorState pass or fail
On Error Resume Next
Dim colItems,objItem
Set colItems = GetObject("winmgmts:").ExecQuery(strVendor, "WQL", lFlags)
For Each objItem In colItems
strHTAVendor=objItem.Manufacturer
if objApprovedMakesDict.exists(strHTAVendor) then
strBIOSver=objItem.SMBIOSBIOSVersion
strBIOSDate=Mid( objItem.ReleaseDate, 5, 2 ) & "/" & Mid( objItem.ReleaseDate, 7, 2 ) & "/" & Left( objItem.ReleaseDate, 4 )
strHTAVendorState=cPassed
Else
strHTAVendorState=cFail
Err.Raise 9010,"fCheckVendor",strHTAVendor & " found. The build will not work on this make of hardware"
Call ErrHandler(ucase(strHTAVendorState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
bAbortBuild=True
end if
Next
fCheckVendor=strHTAVendor
End Function
'=================================================================================
'=================================================================================
'2 - Models check
Function fCheckModel(strThisModel)
'Aim Check target machine is in list of models
'Return string
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking model..." & VbCrLf
If objModelsDict.exists(trim(strThisModel)) then ' if current model in objDict then huzzah
strHTAModelState=cPassed
StatusBar.InnerText=StatusBar.InnerText & vbTab & "Model detected: " & vbTab & strHTAModelState
Else
strHTAModelState=cFail
Err.Raise 9010,"fCheckModel",strThisModel & " found. The build will not work on this model of hardware"
Call ErrHandler(ucase(strHTAModelState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
end if
fCheckModel=strHTAModel
End Function
'=================================================================================
'=================================================================================
'3 - RAM
Function fCheckRAM(strRAM)
'Aim: Check installed RAM > x
'Return string digits with units, e.g. 4GB
'use strHTARAM for value
'==================================================================
' Memory Preflight Check (from MDT2012)
'==================================================================
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking RAM..."
If Err.Number <> 0 Then
Call ErrHandler("Error occurred while calculating computer's memory.",2)
End If
fCheckRAM = Int(strRAM/1024) & "GB" 'format in GB
If Int(strRAM) > cMinimumMemoryMB Then
strHTARAMState=cPassed 'Sufficient memory - show whole number in GB"
StatusBar.InnerText=StatusBar.InnerText & vbTab & "RAM installed: " & vbTab & strHTARAMState
Else
strHTARAMState=cFail
Err.Raise 9030 ,"fCheckRAM","Not enough memory in this machine!" & " Required physical memory is: " & cMinimumMemoryMB & " MB."
Call ErrHandler(ucase(strHTARAMState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1) 'abort build
End If
End Function
'=================================================================================
'=================================================================================
'4 - NTFS disk
Function fCheckNTFS(strDiskFS)
'Aim: Check HDD is NTFS
'Return string
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking file system is not RAW..."
If Instr(1,strDiskFS,cMinFS,VBTextCompare)<>0 Then
fCheckNTFS=cMinFS 'disk format is OK (NTFS)
StatusBar.InnerText=StatusBar.InnerText & vbTab & " File system: " & cPassed
Else
fCheckNTFS=cFail
Err.Raise 9040 ,"fCheckNTFS","WARNING: Disk not correct file-system. Type required is: " & cMinFS & "." & VbCrLf & _
"The deployment will fail unless you reformat the target disk immediately."
Call ErrHandler(Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",2) 'halt build
End If
End Function
'====================================================
'=================================================================================
'5 - CPU checks
'=================================================================================
Function fCheckCPUSpeed(strCPU) 'any HW
'Aim: Check CPU speed
'Return string = number + appropriate units, e.g. 5HGz (strCPU)
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking CPU spec..."
Select Case Right(strCPU,3) 'check units
Case "MHz"
strCPU=Left(strCPU,4)/1000 'reformat to GHz
Case "GHz"
strCPU=strCPU 'unit already OK
Case Else
Call ErrHandler("CPU units are unknown",2)
End Select
'Check clock speed
If Int(Left(trim(strCPU),1))>=iMinCPUSpeed Then
fCheckCPUSpeed=strHTACPUSpeed 'CPU is fine i.e don't change value
StatusBar.InnerText=StatusBar.InnerText & vbTab & "CPU Speed: " & cPassed
Else
fCheckCPUSpeed=cFail 'already in GHz
Err.Raise 9050,"fCheckCPUSpeed","CPU speed pre-requisite failed. Minimum processor clock speed is: " & iMinCPUSpeed
Call ErrHandler(Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1) 'halt build
End If
End Function
'=================================================================================
'=================================================================================
Function fCheckCPUArch(strCPUArch) 'any HW
'Aim: Check CPU width
'Return string
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking CPU bus width..."
'Check clock speed
If Int(Left(trim(strCPUArch),2))>=iMinCPUArch Then
fCheckCPUArch=strHTAArchitecture 'CPU is fine i.e don't change value
StatusBar.InnerText=StatusBar.InnerText & vbTab & "CPU width: " & cPassed
Else
fCheckCPUArch=cFail 'already in GHz
Err.Raise 9052,"fCheckCPUArch","CPU width pre-requisite failed. Minimum processor width required is: " & iMinCPUArch
Call ErrHandler(Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1) 'abort build
End If
End Function
'=================================================================================
Function fCheckCores(iCores)
'Aim: Check hardware (CPU) has a minimum number of cores
'Return Integer
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking CPU cores..."
If iCores>=iMinCores Then
fCheckCores=iCores
StatusBar.InnerText=StatusBar.InnerText & vbTab & "Core count: " & vbTab & cPassed
'StatusBar.InnerText=StatusBar.InnerText & vbTab & "CPU cores: " & cPassed
Else
fCheckCores=cFail
Err.Raise 9051,"fCheckCores","WARNING: Not enough cores on the CPU to support the build. Minimum CPU cores is: " & iMinCores
Call ErrHandler(Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",2) 'halt build
End If
End Function
'=================================================================================
'=================================================================================
Function fCheckHPCPUSpeed 'HP ONLY
'Aim: Check CPU speed
'return: string
'Check CPU speed
On Error Resume Next
strWQLCPU = "processor speed"
strTemp=QueryHPBIOS(strWQLCPU,"")
Select Case Right(strTemp,3)
Case "MHz"
strTemp=Left(strTemp,4)/1000 'reformat to GHz
Case "GHz"
strTemp 'is OK
Case Else
Call ErrHandler("CPU is unknown",2)
End Select
'Check clock speed
If strTemp>=iMinCPUSpeed Then
fCheckCPUSpeed= strTemp & "GHz"
Else
Err.Raise 9050,,"CPU speed pre-requisite failed"
Call ErrHandler("CPU is too slow",1)
fCheckCPUSpeed=cFail 'already in GHz
End If
End Function
'=================================================================================
'=================================================================================
Function fGetModels
'Aim: Read external text file
'return: dictionary object - models as key, integer as value e.g. Dell Optiplex,12
'On Error Resume Next
Dim objFSO
Dim objFile
Dim strFile
Dim strEntry
Dim n
Dim strfilepath
Dim iLineCount 'count lines to avoid listing first item with ,.
Set objModelsDict = CreateObject("Scripting.Dictionary")
set objFSO=CreateObject("Scripting.FileSystemObject")
Const ForReading=1
strfilepath = Left(window.location.pathname,InStrRev(window.location.pathname,"\"))
strFile=strfilepath & "Models.txt"
set objFile=objFSO.OpenTextFile(strFile,ForReading)
iLineCount=0
'read in each line of data until you reach the end of the file
do While objFile.AtEndOfStream<>True
strEntry=objFile.ReadLine
'you can now do what ever you want with the line as referenced with the strEntry variable such as
'echoing it back (e.g. wscript.Echo strEntry) or passing it as a variable to a function of subroutine (e.g. MyFunction strEntry)
objModelsDict.comparemode=VBTextCompare
objModelsDict.Add strEntry,iLineCount
iLineCount=iLineCount+1
If blnDebug then
If iLineCount=1 Then
StatusBar.InnerText=trim(strEntry)
Else
StatusBar.InnerText=StatusBar.InnerText & ", " & trim(strEntry) 'list models
End If
End If
Loop
objFile.Close
End Function
'=================================================================================
'=================================================================================
'====================================================
Function ErrHandler(strErrorMsg,iErrMode)
'Aim: to handle error states
' 1 = Abort
' 2 = Warn
'Return 'Appropriate text message explaining the error
'====================================================
Const msgTitle="SCCM Deployment Preflight Checklist"
'On Error Resume Next '< don't use that as we want to KEEP the error properties
'Abort=1
If iErrMode=1 Then
StatusBar.InnerText=strErrorMsg 'overwrite status with Error message
' StatusBar.InnerText=StatusBar.InnerText & VbCrLf & " " & strHTAOutlook & " " & strHTAVendor & " " & strHTAVendorState & _
' VbCrLf & " " & strHTAModel & strHTAModelState & _
' VbCrLf & " " & strHTARAM & strHTARAMState & _
' VbCrLf & " " & strHTAHDD & strHTAHDDState
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript") 'Abort (close) after n seconds
'MsgBox strErrorMsg,vbExclamation,msgTitle
'ErrBar.class=""
ElseIf iErrMode=2 Then
'Warning
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & strErrorMsg & " " '& "(" & Err.Description & " :" & Err.Number & ")"',vbExclamation,msgTitle
Err.Clear
End If
End Function
'====================================================
Sub Abort
'Aim: Quit gracefully
window.close()
End Sub
</script>
<!-- #region BODY -->
<body>
<br />
<div>
<span style="version"> <span id="VersionSpan"></span></div>
<div style="text-align: center;">
<H1 style="font-family: Arial, Helvetica, sans-serif; font-size: large; text-align: center; color: #000000; text-transform: capitalize">System information</H1>
<span>
<table border="1" cellspacing="0" cellpadding="0" style="width: 912px"
id="SysInfoTable">
<tr class="h1">
<td align="right" class="Header1" style="width: 76px; height: 18px">
</td>
<td align="right" class="Header1" style="height: 18px"><em id="VendorCaption">Vendor</em></td>
<td align="left" class="style2" style="height: 18px"><span id="Vendor"></span></td>
<td align="right" class="Header2" style="height: 18px"><em id="ModelCaption">Model</em></td>
<td align="center" class="style4" style="width: 400px; height: 18px"><span id="Model"></span></td>
</tr>
<tr>
<td align="right" class="Header1" style="width: 76px">
</td>
<td align="right" class="Header1"><em id="ProductCaption">Product ID</em></td>
<td align="left" class="style2"><span id="Product"></span></td>
<td align="right" class="Header2"><em id="RAMCaption">Memory(in MB)</em></td>
<td align="left" class="style4" style="width: 400px"><span id="RAM"></span></td>
</tr>`
<tr>
<td align="right" class="Header1" style="width: 76px">
</td>
<td align="right" class="Header1"><em id="CPUCaption">CPU speed (in GHz)</em></td>
<td align="left" class="style2"><span id="CPUspeed"></span></td>
<td align="right" class="Header2"><em id="CPUInfoCaption">No: CPU\Cores</em></td>
<td align="left" class="style4" style="width: 400px"><span id="CPUInfo"></span></td>
</tr>
<tr>
<td align="right" class="Header1" style="width: 76px">
</td>
<td align="right" class="Header1"><em id="DiskFSCaption">Filesystem info</em></td>
<td align="left" class="style2"><span id="HDDFS"></span></td>
<td align="right" class="Header2"><em id="CapableArchCaption">Architecture</em></td>
<td align="left" class="style4" style="width: 400px"><span id="CapableArchitecture"></span></td>
</tr>
<tr>
<td align="right" class="Header1" style="width: 76px">
</td>
<td align="right" class="Header1"><em id="BIOSVerCaption">BIOS version</em></td>
<td align="left" class="style2" ><span id="BIOSVERSION"></span></td>
<td align="right" class="Header2"><em id="BIOSDateCaption">BIOS Date</em></td>
<td align="left" class="style4" style="width: 400px"><span id="BIOSDate"></span></td>
</tr>
</table>
</span>
</div>
<div class="StatusBar">
<br />
<Span id="StatusBar">Loading...please wait.</Span>
</div> <br><br>
<div align="center">
<input type="button" name="btnStop" id="btnStop" value="Continue" onclick="Abort">
<input type="Button" value="Re-Scan Machine" name="button1" onClick="Window_Onload" class="button">
</div>
</body><!-- #endregion -->
</html> -
I have a laptop G42 (Product # XB056UA#ABA) with Windows 7 64-bit. When I ran the start up test and hard drive test I received an error (Failure ID 9XVL02-55965Q-XD003G-60WS03). It says that the SMART Check passed but the Short DST failed. When I try to load windows I get past the starting windows screen but then it stops after that at the blue screen with the cursor showing but nothing else. I noticed on other forums that say to purchase the system recovery discs which I just received, however when I try them I get the same screen. I'm pretty sure the hard drive is dead, but my laptop is out of warranty. Is there something else I need to try to make the system recovery discs work? I changed the boot order so that the cd-rom is first but that didn't seem to help. If I do need to replace the hard drive is there any advice or information you can give me? Thank you!
Hi,
Failing the short Disk Self Test would indicate that the HDD has indeed failed and will need to be replaced.
The drive on the link below is an example of one that would be fine for your notebook.
500Gb Hard Drive
The procedure to replace the Hard Drive starts on Page 53 of your Maintenance & Service Guide.
Once done, simply use your Recovery DVDs to reinstall the Operating System on the new drive - see Here for details.
Regards,
DP-K
****Click the White thumb to say thanks****
****Please mark Accept As Solution if it solves your problem****
****I don't work for HP****
Microsoft MVP - Windows Experience -
Filesystem check failed, but filesystems are clean
Im running custom kernel and this might be related to it, but Im on my wits' end here and looking for pointers.
The problem is, Im getting filesystem check failed every time I boot my system. And it gives no apparent reason
for it to happen. I have fsck'd my partitions many times and they are clean. My hwclock is in time and rc.conf is set
to 'localtime'. The problem didn't occurs on the previous kernel (2.6.18) I had, so I've been using its running config to
compile the new one (2.6.23). The thing is, the previous kernel works fine, no filesystem check failed in boot. Only
difference between those two is I had to enable HOTPLUG in the newer kernel to get udev working, otherwise it would
complain about failing netlink socket in initscript.
As a temporary solution, I commented out the filesystem check from the rc.sysinit and it boots further. This time
it fails to mount my /boot/ and /home/ directory and fails to activate my swap. Effectively only root is mounted, but
after logging in, "mount -a" works without any problems and I can use my system normally.
I have compiled all(?) the needed modules to the kernel, so initramfs shouldn't be needed, but I've tried it anyway, no
luck there. The system is build with 2009.08 core install disc, no packages updated as far as I recall.
fstab:
#none /dev/pts devpts defaults 0 0
#none /dev/shm tmpfs defaults 0 0
/dev/hdb /media/cdrom auto ro,user,noauto,unhide 0 0
#/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0
#/dev/fd0 /media/fl auto user,noauto 0 0
/dev/disk/by-uuid/728c65f2-a84f-401f-9899-17020758b829 /boot ext3 defaults 0 1
/dev/disk/by-uuid/2767f772-203a-4fe9-ac4d-7c8754abc4c8 swap swap defaults 0 0
/dev/disk/by-uuid/b0b958c4-5f24-414a-8826-6df956f0815b / reiserfs defaults 0 1
/dev/disk/by-uuid/e83b7114-86fe-4e8f-9e95-0d92b8e50d1a /home reiserfs defaults 0 1
dmesg:
Linux version 2.6.23-xbox (root@xbox) (gcc version 4.1.2) #3 Sat Oct 2 14:20:54 EEST 2010
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
BIOS-e820: 000000000009f000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 0000000003c00000 (usable)
BIOS-e820: 0000000003c00000 - 0000000004000000 (reserved)
60MB LOWMEM available.
Entering add_active_range(0, 0, 15360) 0 entries of 256 used
Zone PFN ranges:
DMA 0 -> 4096
Normal 4096 -> 15360
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0 -> 15360
On node 0 totalpages: 15360
DMA zone: 32 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 4064 pages, LIFO batch:0
Normal zone: 88 pages used for memmap
Normal zone: 11176 pages, LIFO batch:1
Movable zone: 0 pages used for memmap
DMI not present or invalid.
Allocating PCI resources starting at 10000000 (gap: 04000000:fc000000)
Built 1 zonelists in Zone order. Total pages: 15240
Kernel command line: root=/dev/hda3 devfs=mount kbd-reset xbox=hdd
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 256 (order: 8, 1024 bytes)
Detected 733.370 MHz processor.
Console: colour dummy device 80x25
console [tty0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 57652k/61440k available (1764k kernel code, 3380k reserved, 470k data, 136k init, 0k highmem)
virtual kernel memory layout:
fixmap : 0xffffb000 - 0xfffff000 ( 16 kB)
vmalloc : 0xc4800000 - 0xffff9000 ( 951 MB)
lowmem : 0xc0000000 - 0xc3c00000 ( 60 MB)
.init : 0xc0332000 - 0xc0354000 ( 136 kB)
.data : 0xc02b90ae - 0xc032ea60 ( 470 kB)
.text : 0xc0100000 - 0xc02b90ae (1764 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 1467.98 BogoMIPS (lpj=2935965)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383f9ff 00000000 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 128K
CPU: After all inits, caps: 0383f9ff 00000000 00000000 00000040 00000000 00000000 00000000 00000000
Compat vDSO mapped to ffffe000.
CPU: Intel Celeron (Coppermine) stepping 0a
Checking 'hlt' instruction... OK.
NET: Registered protocol family 16
PCI: Using configuration type 1
Setting up standard PCI resources
SCSI subsystem initialized
libata version 2.21 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Cannot allocate resource region 7 of bridge 0000:00:08.0
PCI: Cannot allocate resource region 8 of bridge 0000:00:08.0
PCI: Cannot allocate resource region 9 of bridge 0000:00:08.0
PCI: Bridge: 0000:00:08.0
IO window: disabled.
MEM window: disabled.
PREFETCH window: disabled.
PCI: Failed to allocate mem resource #2:80000@f8000000 for 0000:01:00.0
PCI: Failed to allocate mem resource #6:10000@f8000000 for 0000:01:00.0
PCI: Bridge: 0000:00:1e.0
IO window: disabled.
MEM window: fd000000-fdffffff
PREFETCH window: f0000000-f7ffffff
PCI: Setting latency timer of device 0000:00:08.0 to 64
NET: Registered protocol family 2
Time: tsc clocksource has been installed.
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
checking if image is initramfs... it is
Freeing initrd memory: 325k freed
Enabling Xbox eject problem workaround.
fuse init (API version 7.8)
io scheduler noop registered
io scheduler deadline registered (default)
io scheduler cfq registered
xboxfb: nVidia device/chipset 10DE02A0
xboxfb: Detected 64MB of system RAM
xboxfb: Using 4M framebuffer memory
i2c-xbox.o version 0.0.1
i2c-xbox.o: Found nVidia XBOX nForce SMBus controller.
i2c-xbox.o: SMBus bus detected and initialized
xbox-tv-i2c: Using 'SMBus adapter at c000'!
xboxfb: Setting TV mode from EEPROM (NTSC)
xboxfb: detected conexant encoder
xboxfb: Setting cable type from AVIP ID: HDTV (Component video)
xboxfb: RIVA MTRR set to ON
Console: switching to colour frame buffer device 80x30
xboxfb: PCI nVidia NV20 framebuffer ver 0.9.5b-xbox (XboxGeForce3, 4MB @ 0xF3C00000)
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.102
[drm] Initialized drm 1.1.0 20060810
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: module loaded
forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.60.
PCI: Setting latency timer of device 0000:00:04.0 to 64
eth0: forcedeth.c: subsystem: 00000:0000 bound to 0000:00:04.0
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NFORCE: IDE controller at PCI slot 0000:00:09.0
NFORCE: chipset revision 212
NFORCE: not 100% native mode: will probe irqs later
NFORCE: 0000:00:09.0 (rev d4) UDMA100 controller
ide0: BM-DMA at 0xff60-0xff67, BIOS settings: hda:DMA, hdb:DMA
Probing IDE interface ide0...
hda: WDC WD2500JB-00FUA0, ATA DISK drive
hdb: PHILIPS XBOX DVD DRIVE, ATAPI CD/DVD-ROM drive
hda: host side 80-wire cable detection failed, limiting max speed to UDMA33
hda: selected mode 0x42
hdb: selected mode 0x42
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hda: max request size: 512KiB
hda: 488397168 sectors (250059 MB) w/8192KiB Cache, CHS=30401/255/63, UDMA(33)
hda: cache flushes supported
hda: hda1 hda2 hda3 hda4
hdb: ATAPI DVD-ROM drive, 128kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
PCI: Setting latency timer of device 0000:00:02.0 to 64
ohci_hcd 0000:00:02.0: OHCI Host Controller
ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1
ohci_hcd 0000:00:02.0: irq 1, io mem 0xfed00000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 4 ports detected
PCI: Setting latency timer of device 0000:00:03.0 to 64
ohci_hcd 0000:00:03.0: OHCI Host Controller
ohci_hcd 0000:00:03.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:03.0: irq 9, io mem 0xfed08000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
USB Universal Host Controller Interface driver v3.0
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
usb 1-3: new low speed USB device using ohci_hcd and address 2
usb 1-3: configuration #1 chosen from 1 choice
input: DELL DELL USB Keyboard as /devices/pci0000:00/0000:00:02.0/usb1/1-3/1-3:1.0/input/input0
usbcore: registered new interface driver usbkbd
drivers/hid/usbhid/usbkbd.c: :USB HID Boot Protocol keyboard driver
usbcore: registered new interface driver usbmouse
drivers/hid/usbhid/usbmouse.c: v1.6:USB HID Boot Protocol mouse driver
TCP cubic registered
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Freeing unused kernel memory: 136k freed
ReiserFS: hda3: found reiserfs format "3.6" with standard journal
ReiserFS: hda3: using ordered data mode
ReiserFS: hda3: journal params: device hda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda3: checking transaction log (hda3)
ReiserFS: hda3: Using r5 hash to sort names
NET: Registered protocol family 1
spurious 8259A interrupt: IRQ7.
udev: starting version 141
df -h after "mount -a":
Filesystem Size Used Avail Use% Mounted on
/dev/disk/by-uuid/b0b958c4-5f24-414a-8826-6df956f0815b
7.4G 2.1G 5.3G 29% /
/dev/hda1 99M 11M 83M 12% /boot
/dev/hda4 226G 39M 226G 1% /home
Ok, something is definately wrong there, only root is by-uuid
blkid:
/dev/hda3: UUID="b0b958c4-5f24-414a-8826-6df956f0815b" TYPE="reiserfs"
/dev/hda2: TYPE="swap" UUID="2767f772-203a-4fe9-ac4d-7c8754abc4c8"
/dev/hda4: UUID="e83b7114-86fe-4e8f-9e95-0d92b8e50d1a" TYPE="reiserfs"
/dev/hda1: UUID="728c65f2-a84f-401f-9899-17020758b829" SEC_TYPE="ext2" TYPE="ext3"
Should I try newer udev? Can I even use the latest with 2.6.23?Mounting Local Filesystems fails
Mount: Special device /dev/disk/by-uuid/728c65f2-a84f-401f-9899-17020758b829 does not exist
Mount: Special device /dev/disk/by-uuid/e83b7114-86fe-4e8f-9e95-0d92b8e50d1a does not exist
so does Activating swap.
still, ls -la /dev/disk/by-uuid/ gives me:
lrwxrwxrwx 1 root root 10 2010-10-02 22:45 2767f772-203a-4fe9-ac4d-7c8754abc4c8 -> ../../hda2
lrwxrwxrwx 1 root root 10 2010-10-02 22:45 728c65f2-a84f-401f-9899-17020758b829 -> ../../hda1
lrwxrwxrwx 1 root root 10 2010-10-02 22:45 b0b958c4-5f24-414a-8826-6df956f0815b -> ../../hda3
lrwxrwxrwx 1 root root 10 2010-10-02 22:45 e83b7114-86fe-4e8f-9e95-0d92b8e50d1a -> ../../hda4
should I have /boot and /home in /dev?
Full system upgrade gave me the same issue. Even after udev downgrade (udev-142 is the latest I can use with 2.6.23).
Edit:
Changed my fstab back from by-uuid to hdaX, didn't help. Strangely all hdaX are in /dev/ after boot, but the symlinks are missing.
Last edited by TelaKeppi (2010-10-02 21:22:53) -
An auto-installing Windows Update caused my HP Pavilion Sleekbook 14 to no longer be able to log into Windows 8 successfully without saying that a disc could not be found. I tried using the system recovery tools on my own to restore the laptop, then contacted HP support.
The HP support personnel walked me through the same steps I had already taken, then suggested I take it in to a store that provided support for HP products. I've taken it to Office Max and Best Buy, where the store supporot personnel look at the following error:
A required device isn't connected or can't be accessed.
Error Code: 0xc0000185
You'll need to use the recovery tools on your installation media. If you don't have any installation media (like a disc or USB device), contact your system administrator or PC Manufacturer
And tell me that it is a software issue, not covered by my warranty and I will need to purchase recovery disks. I borrowed a friend's Windows 8 install discs and used Rufus to create a bootable USB. But when I try to use the USB to fix my laptop, it acts like it only recognizes the USB and not my hard drive.
When I run HP Basic System Diagnostics I get the following error:
SMART Check : FAILED
Failure ID : GU2FNJ-6H56T7-MFPx0K-60ff03
Product ID : C2K04UA#ABA
Hard Disk 1
I'm mostly running blind, but at this point I don't think it's a software issue. Am I wrong? I'm still under warranty for another few months, but every time I take it to a store they just want me to order recovery disks then come back and pay them to use them on the laptop. I'm really discouraged, and feel like I've tried everything to get HP to help me fix my laptop from an update that installed itself. What am I missing? Do I have any options?Phone HP Support again and report the hard drive failed testing. They "should" at this point send you a replacement. Tell them you also need Recovery Media to boot from and install Windows on the new hdd-since the hdd failed before you got a set burned.
Be sure to write down the error code and give it to them. In the event it may be the hdd controller on the motherboard you may have to send it in.HP will usually send a box to ship it to them.
With any luck at all-even the support people at Best Buy or Office Max should realize the problem after hearing the test results and request a hdd or repair from HP. But_you may be better off contacting HP on your own again.
Good luck!
******Clicking the Thumbs-Up button is a way to say -Thanks!.******
**Click Accept as Solution on a Reply that solves your issue to help others** -
Start up check failed in my hp 540
Hello,
My hp 540 laptop starting failed.. It seems blank screen and curson blinking.. And there s no option... After checking startup check it shows following error message..
Startup check failed
status=failed=replace hard disk 1
warranty id=32LJP-00000-22262-CNU83-10008-01
this is the error message...
My system details:
os- windows 7 32 bit
so pls suggest me how can i resolve this prb.. And how can i take backup....
Thanks for advance..Status - Failed - Replace Hard Disc 1.
Warranty ID [Personal Information Removed]
Warranty ID -> [Personal Information Removed]
Www.hp.com/go/techcenter/startup
SKU Number/product number WB279PA#ACJ
Intel core (TM) 2 Duo CPU T5870@
2 ghz
64/2048 kb
3072 mb 3 gb
27/10/2009
Purchase -> 24th Nov 2009; Warranty End date -> 22nd Jan 2011
250 gb hdd SATA
Compaq 610 Notebook PC SATA 160/250 GB 5400 rpm (with DriveGuard)
F.)A
Notepad serial number./asset tracking number - >[Personal Information Removed]
Compaq 610 Notebook PC -
Shared storage check failed on nodes
hi friends,
I am installing rac 10g on vmware and os is OEL4.i completed all the prerequisites but when i run the below command
./runclufy stage -post hwos -n rac1,rac2, i am facing below error.
node connectivity check failed.
Checking shared storage accessibility...
WARNING:
Unable to determine the sharedness of /dev/sde on nodes:
rac2,rac2,rac2,rac2,rac2,rac1,rac1,rac1,rac1,rac1
Shared storage check failed on nodes "rac2,rac1"
please help me anyone ,it's urgent
Thanks,
poorna.
Edited by: 958010 on 3 Oct, 2012 9:47 PMHello,
It seems that your storage is not accessible from both the nodes. If you want you can follow these steps to configure 10g RAC on VMware.
Steps to configure Two Node 10 RAC on RHEL-4
Remark-1: H/W requirement for RAC
a) 4 Machines
1. Node1
2. Node2
3. storage
4. Grid Control
b) 2 switchs
c) 6 straight cables
Remark-2: S/W requirement for RAC
a) 10g cluserware
b) 10g database
Both must have the same version like (10.2.0.1.0)
Remark-3: RPMs requirement for RAC
a) all 10g rpms (Better to use RHEL-4 and choose everything option to install all the rpms)
b) 4 new rpms are required for installations
1. compat-gcc-7.3-2.96.128.i386.rpm
2. compat-gcc-c++-7.3-2.96.128.i386.rpm
3. compat-libstdc++-7.3-2.96.128.i386.rpm
4. compat-libstdc++-devel-7.3-2.96.128.i386.rpm
------------ Start Machine Preparation --------------------
1. Prepare 3 machines
i. node1.oracle.com
etho (192.9.201.183) - for public network
eht1 (10.0.0.1) - for private n/w
gateway (192.9.201.1)
subnet (255.255.255.0)
ii. node2.oracle.com
etho (192.9.201.187) - for public network
eht1 (10.0.0.2) - for private n/w
gateway (192.9.201.1)
subnet (255.255.255.0)
iii. openfiler.oracle.com
etho (192.9.201.182) - for public network
gateway (192.9.201.1)
subnet (255.255.255.0)
NOTE:-
-- Here eth0 of all the nodes should be connected by Public N/W using SWITCH-1
-- eth1 of all the nodes should be connected by Private N/W using SWITCH-2
2. network Configuration
#vim /etc/host
192.9.201.183 node1.oracle.com node1
192.9.201.187 node2.oracle.com node2
192.9.201.182 openfiler.oracle.com openfiler
10.0.0.1 node1-priv.oracle.com node1
10.0.0.2 node2-priv.oracle.com node2-priv
192.9.201.184 node1-vip.oracle.com node1-vip
192.9.201.188 node2-vip.oracle.com node2-vip
2. Prepare Both the nodes for installation
a. Set Kernel Parameters (/etc/sysctl.conf)
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
b. Configure /etc/security/limits.conf file
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
c. Configure /etc/pam.d/login file
session required /lib/security/pam_limits.so
d. Create user and groups on both nodes
# groupadd oinstall
# groupadd dba
# groupadd oper
# useradd -g oinstall -G dba oracle
# passwd oracle
e. Create required directories and set the ownership and permission.
# mkdir –p /u01/crs1020
# mkdir –p /u01/app/oracle/product/10.2.0/asm
# mkdir –p /u01/app/oracle/product/10.2.0/db_1
# chown –R oracle:oinstall /u01/
# chmod –R 755 /u01/
f. Set the environment variables
$ vi .bash_profile
ORACLE_BASE=/u01/app/oracle/; export ORACLE_BASE
ORA_CRS_HOME=/u01/crs1020; export ORA_CRS_HOME
#LD_ASSUME_KERNEL=2.4.19; export LD_ASSUME_KERNEL
#LANG=”en_US”; export LANG
3. storage configuration
PART-A Open-filer Set-up
Install openfiler on a machine (Leave 60GB free space on the hdd)
a) Login to root user
b) Start iSCSI target service
# service iscsi-target start
# chkconfig –level 345 iscsi-target on
PART –B Configuring Storage on openfiler
a) From any client machine open the browser and access openfiler console (446 ports).
https://192.9.201.182:446/
b) Open system tab and update the local N/W configuration for both nodes with netmask (255.255.255.255).
c) From the Volume tab click "create a new physical volume group".
d) From "block Device managemrnt" click on "(/dev/sda)" option under 'edit disk' option.
e) Under "Create a partition in /dev/sda" section create physical Volume with full size and then click on 'CREATE'.
f) Then go to the "Volume Section" on the right hand side tab and then click on "Volume groups"
g) Then under the "Create a new Volume Group" specify the name of the volume group (ex- racvgrp) and click on the check box and then click on "Add Volume Group".
h) Then go to the "Volume Section" on the right hand side tab and then click on "Add Volumes" and then specify the Volume name (ex- racvol1) and use all space and specify the "Filesytem/Volume type" as ISCSI and then click on CREATE.
i) Then go to the "Volume Section" on the right hand side tab and then click on "iSCSI Targets" and then click on ADD button to add your Target IQN.
j) then goto the 'LUN Mapping" and click on "MAP".
k) then goto the "Network ACL" and allow both node from there and click on UPDATE.
Note:- To create multiple volumes with openfiler we need to use Multipathing that is quite complex that’s why here we are going for a single volume. Edit the property of each volume and change access to allow.
f) install iscsi-initiator rpm on both nodes to acces iscsi disk
#rpm -ivh iscsi-initiator-utils-----------
g) Make entry in iscsi.conf file about openfiler on both nodes.
#vim /etc/iscsi.conf (in RHEL-4)
and in this file you will get a line "#DiscoveryAddress=192.168.1.2" remove comment and specify your storage ip address here.
OR
#vim /etc/iscsi/iscsi.conf (in RHEL-5)
and in this file you will get a line "#ins.address = 192.168.1.2" remove comment and specify your storage ip address here.
g) #service iscsi restart (on both nodes)
h) From both Nodes fire this command to access volume of openfiler-
# iscsiadm -m discovery -t sendtargets -p 192.2.201.182
i) #service iscsi restart (on both nodes)
j) #chkconfig –level 345 iscsi on (on both nodes)
k) make the partition 3 primary and 1 extended and within extended make 11 logical partition
A. Prepare partitions
1. #fdisk /dev/sdb
:e (extended)
Part No. 1
First Cylinder:
Last Cylinder:
:p
:n
:l
First Cylinder:
Last Cylinder: +1024M
2. Note the /dev/sdb* names.
3. #partprobe
4. Login as root user on node2 and run partprobe
B. On node1 login as root user and create following raw devices
# raw /dev/raw/raw5 /dev/sdb5
#raw /dev/raw/taw6 /dev/sdb6
# raw /dev/raw/raw12 /dev/sdb12
Run ls –l /dev/sdb* and ls –l /dev/raw/raw* to confirm the above
-Repeat the same thing on node2
C. On node1 as root user
# vi .etc/sysconfig/rawdevices
/dev/raw/raw5 /dev/sdb5
/dev/raw/raw6 /dev/sdb6
/dev/raw/raw7 /dev/sdb7
/dev/raw/raw8 /dev/sdb8
/dev/raw/raw9 /dev/sdb9
/dev/raw/raw10 /dev/sdb10
/dev/raw/raw11 /dev/sdb11
/dev/raw/raw12 /dev/sdb12
/dev/raw/raw13 /dev/sdb13
/dev/raw/raw14 /dev/sdb14
/dev/raw/raw15 /dev/sdb15
D. Restart the raw service (# service rawdevices restart)
#service rawdevices restart
Assigning devices:
/dev/raw/raw5 --> /dev/sdb5
/dev/raw/raw5: bound to major 8, minor 21
/dev/raw/raw6 --> /dev/sdb6
/dev/raw/raw6: bound to major 8, minor 22
/dev/raw/raw7 --> /dev/sdb7
/dev/raw/raw7: bound to major 8, minor 23
/dev/raw/raw8 --> /dev/sdb8
/dev/raw/raw8: bound to major 8, minor 24
/dev/raw/raw9 --> /dev/sdb9
/dev/raw/raw9: bound to major 8, minor 25
/dev/raw/raw10 --> /dev/sdb10
/dev/raw/raw10: bound to major 8, minor 26
/dev/raw/raw11 --> /dev/sdb11
/dev/raw/raw11: bound to major 8, minor 27
/dev/raw/raw12 --> /dev/sdb12
/dev/raw/raw12: bound to major 8, minor 28
/dev/raw/raw13 --> /dev/sdb13
/dev/raw/raw13: bound to major 8, minor 29
/dev/raw/raw14 --> /dev/sdb14
/dev/raw/raw14: bound to major 8, minor 30
/dev/raw/raw15 --> /dev/sdb15
/dev/raw/raw15: bound to major 8, minor 31
done
E. Repeat the same thing on node2 also
F. To make these partitions accessible to oracle user fire these commands from both Nodes.
# chown –R oracle:oinstall /dev/raw/raw*
# chmod –R 755 /dev/raw/raw*
F. To make these partitions accessible after restart make these entry on both nodes
# vi /etc/rc.local
Chown –R oracle:oinstall /dev/raw/raw*
Chmod –R 755 /dev/raw/raw*
4. SSH configuration (User quivalence)
On node1:- $ssh-keygen –t rsa
$ssh-keygen –t dsa
On node2:- $ssh-keygen –t rsa
$ssh-keygen –t dsa
On node1:- $cd .ssh
$cat *.pub>>node1
On node2:- $cd .ssh
$cat *.pub>>node2
On node1:- $scp node1 node2:/home/oracle/.ssh
On node2:- $scp node2 node2:/home/oracle/.ssh
On node1:- $cat node*>>authowized_keys
On node2:- $cat node*>>authowized_keys
Now test the ssh configuration from both nodes
$ vim a.sh
ssh node1 hostname
ssh node2 hostname
ssh node1-priv hostname
ssh node2-priv hostname
$ chmod +x a.sh
$./a.sh
first time you'll have to give the password then it never ask for password
5. To run cluster verifier
On node1 :-$cd /…/stage…/cluster…/cluvfy
$./runcluvfy stage –pre crsinst –n node1,node2
First time it will ask for four New RPMs but remember install these rpms by double clicking because of dependancy. So better to install these rpms in this order (rpm-3, rpm-4, rpm-1, rpm-2)
1. compat-gcc-7.3-2.96.128.i386.rpm
2. compat-gcc-c++-7.3-2.96.128.i386.rpm
3. compat-libstdc++-7.3-2.96.128.i386.rpm
4. compat-libstdc++-devel-7.3-2.96.128.i386.rpm
And again run cluvfy and check that "It should given a clean cheat" then start clusterware installation.
Maybe you are looking for
-
ICloud to Mac Address Book - Two Questions
Okay, I have learned/accepted that iCloud is not the sync'ing deal that MobileMe was (missed that in the fine print as I have been a loyal .mac user from its inception and like the MM syncing). I understand that everything is updated in the cloud and
-
No procedure/function decomposition in packages in Rel 2
I noticed that one of the changes since the last release was: "View Package Spec and Body - now decompose to display procedures and functions " I tried doing this in Rel 2 but there is still no decomposition of procedures/functions.Maybe I have misun
-
Hi, I have heard that there is a shortcut to set a alarm time in Reminders. If you use Swedish as default language you can write i.e. "Call mum kl13.00" or something like that. In English it would something be like "Call mum 13.00h". Does anybody kno
-
Picking is greyed out while i create delivery in Consignment Fill Up
Dear SAP Gurus.. Plz, advise, Picking is greyed out while i create delivery in Consignment Fill Up. I'm able to create Consignment sales Scenario: Comp A --> Comp B --> Customer but Material should be remain in CompA value vise Only Inventory of Com
-
ORA-01882 TIMEDATE REGION NOT FOUND (NLS-PARAMETERS)
I´m Working in Brazil, when I run tester, have an error display , jbosqlexception ora-01882 TRZ timeregion zone not found, this problem is in the server ? or my computer configurations? Nls_parameters is BRAZILIAN PORTUGUESE , BRAZIL , or should be A