Bất kỳ cách nào để khởi động lại máy Linux thông qua SSH nếu hệ thống tập tin gốc không hoạt động?


15

Chỉ là một sự tò mò; đã xảy ra sự cố với máy Linux, làm cho hệ thống tệp gốc hiển thị là "64Z". Một vài lệnh hoạt động, như top, dfkill, nhưng các lệnh khác như rebootđưa ra "lệnh không tìm thấy" (vì nó không thể đọc được hệ thống tập tin gốc) và chmodxuất hiện lỗi phân đoạn.

Có cách nào để khởi động lại hệ thống không, tức là không có rebootchương trình? Tôi đã thử kill -PWR 1(gửi SIGPWR cho init), nhưng điều này dường như không làm gì cả.

Nó chủ yếu là một sự tò mò học tập. Người lao động đang làm bất cứ việc gì trong cơ sở dữ liệu lớn gây ra lỗi sẽ sớm khởi động lại máy.


Hy vọng rằng điều này sẽ cứu tôi khỏi vấn đề vào lần tới ... [ cyberciti.biz/tips/reboot-linux-box-after-a-kernel-panic.html ]
gatoatigrado

Bạn có thấy rằng vấn đề với root fs đã gây ra sự hoảng loạn hạt nhân?
Hanan N.

Câu trả lời:


25

Hãy thử khởi động lại bằng phím sysrq ma thuật:

echo b > /proc/sysrq-trigger

Để biết thêm thông tin đọc wiki hoặc tài liệu kernel .


1
Cảm ơn! Điều này đã khởi động lại hệ thống. (Thật không may, bất cứ điều gì đã xảy ra với hệ thống tập tin gốc dường như không thể phục hồi ... buồn).
gatoatigrado

5

RAC (thẻ truy cập từ xa) hoặc iLO (tắt đèn tích hợp) hoặc MP (bộ xử lý quản lý) sẽ cung cấp cho bạn phương tiện để đặt lại máy chủ của bạn.

Ví dụ: nếu bạn có Dell PowerEdge với thẻ RAC (được gọi là DRAC), bạn có thể cấp nguồn cho máy chủ thông qua ssh:

ssh drac "racadm serveraction powercycle"

Tùy chọn khác là sử dụng Web-GUI cho RAC / iLO và thực hiện tương tự ở đó.

Cũng có một tiêu chuẩn mở cho công cụ này: IPMI.


3

Thậm chí thú vị hơn những gì @Rush trả lời, là khả năng khởi động lại (và nhiều hơn nữa) hệ thống, ngay cả khi hệ thống không phản hồi với bàn phím. Nhưng nó phải được đáp ứng với các gói ping (ICMP).

Xem ở đây để có tài liệu đầy đủ và hướng dẫn về cách thực hiện điều đó.


4
Làm thế nào về việc thực sự đưa ra một bản tóm tắt của các hướng dẫn / tóm tắt các nguyên tắc thay vì chỉ là một liên kết?
kizzx2

bạn cần thực hiện một chút thiết lập cho cách tiếp cận đó, nhưng chắc chắn là một ý tưởng gọn gàng.
gatoatigrado

Nghe có vẻ thú vị - nhưng không có rủi ro bảo mật đáng kể liên quan? Cho phép một máy chủ được khởi động lại thông qua một gói ICMP có vẻ như một cuộc tấn công từ chối dịch vụ đang chờ xảy ra.
bgvaughan

@bgvaughan: bạn đã đúng, và tại liên kết tôi đã cung cấp ở trên, có những ưu và nhược điểm về nó, và một trong số đó là bảo mật, mặc dù bạn có thể hạn chế ai có thể làm điều đó.
Hanan N.

2

Cách dễ nhất thường là chỉ thay đổi runlevel.

Trong Linux, bạn có thể làm:

Prompt# init 6

Thêm thông tin tại đây: http://linux.about.com/od/itl_guide/a/gdeitl36t04.htm


1
Điều này sẽ không hoạt động trong tình huống này. lệnh init nằm trong / sbin (ít nhất là trong ubfox), vì vậy nó yêu cầu truy cập hệ thống tệp.
Nắng

1

Điều này yêu cầu thiết lập trước, nhưng nếu bạn đã từng làm hỏng máy (ví dụ: vì bạn đang thực hiện phát triển cấp thấp trên nó), bạn có thể muốn thiết lập cơ quan giám sát , tức là nhân hoặc tác vụ người dùng tự động khởi động lại khi nó trở nên không phản hồi Linux có thể sử dụng bộ giám sát phần cứng nếu bo mạch chủ của bạn có một hoặc bộ giám sát phần mềm khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.