Jun 9, 2008
77 Views

Quá trình khởi động máy – sự cố và cách khắc phục

Written by

Chúng ta sẽ lần lượt quan sát từng bước xem giai đoạn khởi động máy này được thực thi theo một tiến trình như thế nào để khi một máy tính có thể bị trục trặc ngay trong quá trình khởi động đó thì chúng ta có thể nhận biết được sơ bộ nguyên nhân nào gây ra .
+Đầu tiên ta bắt đầu bật công tắc Power On để khởi động máy tính
+Bộ nguồn máy tính bắt đầu được cấp nguồn và thao tác đầu tiên của nó là bắt đầu thực thi bứoc đầu tiên trong giai đoạn POST (Power on selftest),nó sẽ đi kiểm tra các giá trị điện thế logic ở ngõ ra đã thực sự ổn định chưa +5v ,-5v,+12v,-12v ,đúng chưa .Giai đoạn mà nó tự đi POST ,nguồn này sẽ diễn ra rất nhanh ,khoảng từ 0.5-2 giây .Nếu trong quá trình kiểm tra có sự cố thì nó sẽ không cấp nguồn cho mainboard nữa và có thể treo máy luôn hoặc dùng tín hiệu âm thanh (Error Sound Code) để báo cho ta biết .NẾu như quá trình kiểm tra tốt không có chuyện gì thì lúc này nó sẽ gửi tín hiệu báo nguồn tốt PG (Power good signal),tín hiệu này sẽ kích vào một mạch định thời gian Timer Microcontroller trên main ,cấp nguồn cho CPU và bắt đầu ở vào trạng thái sẳn sàng làm việc .
+Sau khi được cấp nguồn ,công việc đầu tiên CPU đi thực thi là nó sẽ tiến hành đi đọc ROM Bios .Như vậy lúc này có thể nói Rom Bios đóng vai trò là người dẫn đường đầu tiên cho CPU trong quá trình khởi động .
Thực chất trong Rom Bios sẽ mang một đoạn chương trình và yêu cầu CPU phải tiến hành thực thi đoạn chương trình này ở mỗi lần khởi động máy .Lúc này CPU sẽ lần lượt thực hiện các lệnh trong Rom Bios theo từng bước sau
-Tiến hành kiểm tra các thiết bị cơ bản nhất trên hệ thống để xem tình trạng làm việc của các thiết bị này đã sẳn sàng chưa .Các thiết bị cơ bản này sẽ bao gồm :Ram ,HDD ,VGA ,các bộ chipset và mainboard..Trong quá trình kiểm tra từng thiết bị ,nếu tốt nó sẽ kiểm tra thiết bị kế típ ,nhưng nếu gặp sự cố trong giai đọan này thì hoặc là máy sẽ treo luôn ,không có hình ảnh âm thanh gì ,hoặc là máy sẽ dùng tín hiệu báo lỗi âm thanh để thông báo cho ta biết .Lúc ày chưa thể hiện hình được vì CPU chưa đọc Rom màn hình (Rom video )
-Khi kiểm tra Ram trong giai đoạn này thì thông thường ta sẽ gặp một số lỗi và tình mày như sau :Nếu ta gắm Ram sai Bank thì máy sẽ không lên hình ảnh và không báo lỗi gì cả ,nhưng nếu ta gắm Ram lõng chân hay Ram hư thì máy sẽ dùng tín hiệu âm thanh báo lỗi cho ta biết và thông thường mã âm thanh báo lỗi của Ram là nó sẽ bip từng tiếng ngắn và liên tục nhau .
-Khi kiểm tra đĩa cứng thì thông thường ta cũng sẽ gặp một số lỗi sau :Nếu ta gắn 1 đĩa cứng bị hư ,gắn lõng dây hoặc set Jumper đĩa cứng sai thì chẳng ảnh hưởng gì cả ,máy vẫn làm việc bình thừong chỉ có ta không thể detect được đĩa cứng đó trong Cmos mà thôi và tất nhiên cũng chẳng thể vào Win đựoc .
-Khi kiểm tra VGA :Nếu ta gắn VGA tốt ,bình thường thì không có chuyện gì xảy ra cả ,nhưng nếu ta gắn VGA bị hư hay chưa gắn thì lúc này máy sẽ phát tín hiệu báo lỗi và tín hiệu này sẽ là một tiếng bip kéo dài và 3 tiếng bip ngắn .Nhờ code báo lỗi của VGA ta có thể lợi dụng nó để xem mainboard hay CPU có hư hay không .Giả sử ta bật máy lên chẳng có âm thanh hình ảnh gì và ta nghi ngờ là có thể hư main hay CPU .
Để xác định xem là có hư main hay không ta có thể thử bằng cách :cấp nguồn cho main bình thường ,gắm Ram ,loa và nhổ VGA ra .
Bật nguồn lên ,nếu máy báo lỗi VGA ra loa thì có nghĩa là main và CPU vẫn có thể làm việc bình thừong ,còn nếu như máy không báo lỗi thì ta có thể xác định cò thể là do main .
-Và cuối cùng nó sẽ đi kiểm tra các thành phần còn lại trên main và các bộ chipset hệ thống .Nếu quá trình kiểm tra này hoàn tất mà không có lỗi gì cả lúc này ta sẽ nghe đựoc một tiếng bip ngắn ,tiếng bip này xác nhận cho ta biết là giai đoạn POST đã thành công .
+CPU tiếp tục đi đọc Rom màn hình và bắt đầu thông tin lên màn hình các thông tin đầu tiên mà nó sẽ thông báo cho ta biết là hãng sản xuất của card màn hình ,model của card và dung lượng Ram màn hình của nó.Giai đoạn báo thông tin này đối với các máy đời cũ diễn ra khá chậm ,nhưng đối với các máy ngày nay nó diễn ra rất nhanh đế nỗi có nhiều khi ta xem không kịp .
+Tiếp theo ,nó sẽ đi dò tìm trên hệ thống để xem ta có đang sử dụng một adapter card nào có gán Rom hay không ,nếu không thì thôi nhưng nếu có thì nó sẽ đi đọc luôn thông tin trong Rom của các Adapter card đó .
+Đọc và báo thông tin về CPU ,main và Rom Bios .Về CPU nó sẽ báo hãng sản xuất CPU ,loại CPU và tần số làm việc của nó ;về main nó sẽ báo loại main , đời main và bộ chipset của main ;về Rom Bios có thể nó sẽ báo hãng sản xuất ,ngày sản xuất và version của nó .
+Test Ram :Thông thường khi test Ram nó sẽ test Ram 3 lần và trong mỗi lần đó nó sẽ test đi test lại bộ nhớ qui ước 2 lần .
+Đến 1 địa chỉ trên Ram để đọc 1 byte ở giá trị này xem hệ thống đang boot nóng (warm boot :boot bằng Ctrl-Alt-Del)hay boot lạnh (cold boot:Reset hay tắt máy ). Địa chỉ này là 0000:0472,nếu byte này có giá trị là 1234h thì hệ thống đang boot nóng ,còn nếu là 1 giá trị khác thì hệ thống đang boot lạnh .
Nếu hệ thống đang boot lạnh thì khởi động lại nó phải thực thi từng bước giống như lúc đầu .Nhưng nếu hệ thống đang boot nóng thì khi boot lại nó sẽ bỏ qua các bước đã thực thi rồi ví dụ như đọc CPU ,test Ram …để nhằm làm cho quá trình khởi động nhanh hơn .
+CPU đi đọc CMOS : Đọc các thông tin đang được khai báo trong Cmos rồi so sánh với thực tế trên hệ thống ,nếu đúng thì làm tiếp nhưng nếu thông tin đang khai báo trong Cmos bị sai thì có thể máy sẽ báo lỗi hoặc treo máy .
Như vậy thì CPU sẽ đi đọc Cmos ngay sau khi test Ram ,nên thông thường nếu ta đang khởi động mà máy test Ram xong lại treo máy thì hầu hết 90 % nguyên nhân là do các thông số trong Bios gây ra .Kiểm tra lại Cmos
+Đến mục thứ hai Bios Features Setup trong Cmos đọc mục Boot Sequence để xem ta đang cho khởi động từ ổ đĩa nào :A:C hay C:A .Nếu biết được ổ đĩa đang được cho khởi động thì đi đọc ngay sector vật lý đầu tiên của ổ đĩa đó .Nếu ta đang cho boot A:C thì CPU sẽ đi đọc sector vật lý đầu tiên của đĩa A ;và đó chính là DBR của A ;nhưng nếu ta cho boot C:A thì nó sẽ đi đọc sector vật lý đầu tiên trên đĩa cứng và sector này chính là bảng Master partition table .Bây giờ giả sử ta đang cho boot A: C:,CPU sẽ đi đọc bảng partition chủ trên đĩa cứng .
+Đọc bảng Partition của đĩa cứng -Đầu tiên nó sẽ đụng 446 bytes của đoạn chương trình ngắn và sẽ thực thi 3 lệnh trong đoạn chương trình ngắn này .
+kiểm tra 64 bytes của bảng thông số vật lý của partition bên dưới rồi so sánh với thực tế trên đĩa xem có đúng không .Nếu đúng thì làm tiếp nhưng nếu sai thì hoặc là treo máy ,hoặc là sẽ báo một trong các câu thông báo lỗi sau :Invalid partition table ,Error loading operating system ,Missing operating system..
+Kiểm tra xem ta đang chia làm bao nhiêu partition và partition nào đang được set active .Còn nếu trong quá trình kiểm tra nó không thấy partition nào được set active thì có thể ta sẽ nhận được thông báo :Press any key to reboot ,No Rom Basic ,system halt …
+Nếu đã xác định được partition nào đang được set active rồi thì đi đọc sector logic đầu tiên của partition hay ổ đĩa logic đó hay nói cách khác lúc này CPU sẽ đi đọc DBR của ổ đĩa này bởi vì theo qui định của Dos ,sector logic đầu tiên của một ổ đĩa lúc nào cũng phải là DBR
+Khi đọc DBR ,vì bảng thông số nội bộ của DBR lại nằm tr6en nên đầu tiên nó sẽ đọc 3 bytes nhảy trứoc EB 3C 90 hay EB 58 90 để nhảy qua bảng thông số nội bộ , đến và bắt đầu thực thi 2 lệnh của đạng chương trình mồi DBR
+Kiểm tra 59 bytes hay 87 bytes của bảng thông số nội bộ DBR bên trên rồi so sánh với thực tế nội bộ trên ổ đĩa đó xem có đúng không .Nếu đúng thì làm tiếp nhưng nếu sai thì hệ thống sẽ treo máy và không cho phép ta khởi động được nữa ,có thể lúc này ta gặp một con trỏ nhấp nháy trên màn hình :d .
+Đến các cluster đầu tiên trên đĩa ,thông thường đối với Diskedit là cluster 2 để tải Io.sys lên Ram .Nếu không tìm thấy Io.sys ở vị trí này ta sẽ nhận được một câu thông báo :Non system Disk or Disk error .Replace and press any key ….Nhưng nếu tải được Io.sys lên Ram rồi thì ta có thể xem như quá trình khởi động đã thành công vì lúc này Ron Bios trả quyền điều khiển lại cho hệ điều hành .
+Có một số lưu ý về Io.sys :Io.sys chính là 1 phần của hệ điều hành và nó phải có vị trí xác định ,nó phải nằm ngay các cluster đầu tiên và không bao giờ thay đổi tr6en đĩa .Nếu mất Io.sys đi ,vì đặc điểm này nên ta không thể dùng lệnh copy bình thường để copy lại nó mà ta phải dùng Sys để tạo hay Disktool –make a disk bootable .Như vậy Sys hay Disktool cũng là một tập tin dùng để copy nhưng nó copy Io.sys vào đúng ngay vị trí của nó ,ngoài ra nó còn tạo cho ta cả đoạn chương trình mồi của DBR

Article Tags:
·
Article Categories:
IT & Network
    http://linholiver.com

    https://linholiver.com/diary/about/