Linux Mint không khởi động được sau khi chạy lệnh rm rvv được cho là để thiết lập phân vùng trao đổi


26

Khi tôi đang tạo ổ cứng Linux, tôi đã bỏ qua việc tạo phân vùng trao đổi, nghĩ rằng 4GB sẽ đủ RAM. Bây giờ, tôi nghĩ rằng tôi cần một phân vùng trao đổi. Tôi đã hỏi một số người trên IRC cách làm điều này và họ đã cho tôi những điều sau:

su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt

Tôi đã nhập nó và nó cần mật khẩu của tôi. Nó không thực sự có vẻ như nó đang làm bất cứ điều gì, nhưng 10 phút sau nó chỉ tắt mà không có lý do. Bây giờ nó sẽ không bắt đầu lại. Có chuyện gì với cái này vậy?

Tôi đang sử dụng phiên bản Linux Mint Cinnamon.


5
Điều này có thể là thật không? Tất nhiên bạn không thể khởi động - bạn đã xóa hầu hết hệ thống. Thời gian để cài đặt lại.

3
Ouch ... Để tham khảo trong tương lai, bạn không bao giờ nên mù quáng chạy các lệnh. Luôn luôn dành thời gian để đọc các trang người đàn ông hoặc nghiên cứu chúng đầu tiên. PS Bạn có biết máy chủ / kênh irc không? Bạn có nhớ tên người dùng của anh chàng?
Zoredache

19
@kaz, tất cả người dùng, bao gồm cả chính bạn, bắt đầu như không biết gì. Hầu hết chúng ta đã làm hỏng một vài hệ điều hành và máy tính dọc theo trình độ máy tính hiện tại của chúng ta. Đổ lỗi không nằm ở người dùng mới mà với kẻ ngốc độc hại, người nghĩ rằng sẽ rất vui khi gây ra một người lạ hoàn toàn căng thẳng không cần thiết.
terdon

4
@terdon: Luôn có những người sẽ thực hiện thủ thuật này, bạn không thể làm gì với những kẻ ngốc này; trong trường hợp này, OP thậm chí không quan tâm đến việc đọc lệnh rõ ràng / boot / bin / usr / bin và tạm dừng, tất cả đều không liên quan đến trao đổi và sẽ khiến người ta ít nhất tự hỏi "tại sao khởi động và tạm dừng?!" ngay cả khi bạn không thể đọc lệnh. Đó thực sự là một điều tốt khi anh ấy học được điều này sớm hơn sau đó và cũng là một điều tốt khi nó chỉ là nhị phân đã bị xóa sạch. Anh ta có thể mất nhiều hơn thế, rất vui vì anh ta không ... Bạn có tự đâm mình nếu bác sĩ yêu cầu bạn làm điều đó không? Số
Tamara Wijsman

4
@TomWijsman, không, nhưng tôi không có bằng Tiến sĩ Sinh học nên tôi biết, với những năm học tập và tất cả, việc nhét vật sắc nhọn vào cơ thể động vật có vú là một ý tưởng hay :-).
terdon

Câu trả lời:


38

Các lệnh bạn đã chạy thực hiện các thao tác sau, không có lệnh nào được kết nối từ xa để tạo phân vùng trao đổi:

  1. Chuyển sang root ( su)
  2. Xóa mọi thứ trong /bootthư mục ( rm -rf /boot). Đây là nơi lưu giữ tất cả các tệp cần thiết để khởi động HĐH của bạn. Bao gồm cả nhân.
  3. Loại bỏ tất cả các lệnh hệ thống cơ bản ( rm -rf /bin). Bây giờ những thứ như bash, rm, ls, mkdir, mountkhông còn có sẵn cho hệ thống của bạn.
  4. Xóa hầu hết các chương trình đã cài đặt khác ( rm -rf /usr/bin)
  5. Tắt máy ( halt).

Kết quả cuối cùng của các lệnh này là một hệ thống Linux bị phá hủy hoàn toàn. Về mặt lý thuyết là có thể giải cứu hệ thống của bạn nhưng nó thực sự không đáng để nỗ lực. Nó sẽ đòi hỏi chuyên môn đáng kể về Linux mà tôi cho rằng bạn không có hoặc bạn sẽ không ở trong tình huống này ngay từ đầu :-). Điều tốt nhất để làm thực sự, chỉ đơn giản là cài đặt lại từ đầu. Tin vui là dữ liệu của bạn chưa được chạm vào và bạn sẽ có quyền truy cập vào dữ liệu đó khi bạn khởi động vào phiên trực tiếp để cài đặt lại.

Đạo đức của câu chuyện là, đừng tin tưởng những đứa trẻ 15 tuổi ngẫu nhiên bạn tìm thấy trong các kênh IRC và luôn hiểu lệnh đó làm gì trước khi bạn chạy nó . Đặc biệt nếu lệnh đó cần được chạy dưới dạng root ( su).


Để tham khảo trong tương lai, cách để tạo phân vùng trao đổi là sử dụng một cái gì đó như CD trực tiếp GParted . Khi bạn đã khởi động vào phiên trực tiếp, bạn có thể sử dụng gpartedđể thu nhỏ một trong các phân vùng có sẵn của mình, sau đó tạo một phân vùng mới trong không gian chưa phân chia và gán nó để trao đổi. Cuối cùng, bạn sẽ phải khởi động lại vào hệ thống bình thường của bạn và cập nhật /etc/fstabtệp của bạn để trỏ đến phân vùng trao đổi mới. Cái gì đó như:

UUID=123-345-abc    swap    swap    sw  0 0

1
Đó là hút. Nhưng làm thế nào để nó tắt máy nếu lệnh đó bị xóa?
Alexis Stowe

4
@AlexisStowe, haltlệnh nằm trong /sbin. Hỗ trợ công nghệ IRC thân thiện của bạn đã quên xóa cái đó.
terdon

1
Tôi sẽ nói khi bạn thấy rmbất cứ nơi nào trong câu trả lời để tạo ra một cái gì đó - chạy.
Kitet

14

Mặc dù hệ thống của bạn sẽ không khởi động được vì các thư mục hệ thống quan trọng đã biến mất, tất cả các thư mục khác vẫn còn đó. Chẳng hạn, có thể khởi động một đĩa CD hoặc DVD "sống" của Linux, gắn ổ đĩa và chọc xung quanh. Bất kỳ bản phân phối tốt nào cũng nên cho phép bạn cài đặt hệ thống trên đầu phân vùng hiện có mà không xóa các tệp hiện có, chẳng hạn như thư mục gốc của người dùng.

Nếu có bất cứ thứ gì trong hệ thống đó có giá trị (tức là dữ liệu cá nhân của bạn chứ không chỉ là bản cài đặt Linux), đừng làm bất cứ điều gì quá vội vàng sẽ dẫn đến mất thêm.

Nếu trong tương lai, bạn cần trao đổi không gian và không có dung lượng trên ổ đĩa, thay vì cố gắng thay đổi kích thước phân vùng để tạo khoảng trống, bạn có thể yêu cầu Linux chuyển đổi thành tệp! Đầu tiên bạn phải tạo một tệp lớn. Thông thường một tệp chứa đầy byte không được tạo bằng cách sao chép từ /dev/zero. Sau đó, tập tin đó phải được định dạng để hoán đổi bằng cách sử dụng mkswaplệnh. Cuối cùng, kernel có thể được yêu cầu bắt đầu hoán đổi tập tin đó với swapon.

Ví dụ: một tệp gigabyte:

$ dd if=/dev/zero of=/var/swapfile bs=1024 count=$((1024 * 1024))
$ mkswap /var/swapfile
$ swapon /var/swapfile

Thủ thuật này rất tốt cho các trường hợp khẩn cấp khi một số chương trình đang nhai rất nhiều bộ nhớ ảo và bạn không muốn giết chương trình đó (bởi vì, giả sử, bạn là một nhà khoa học và chương trình đã thực hiện một số tính toán có giá trị trong nhiều giờ). Nếu bạn chỉ cần trao đổi tạm thời cho một tình huống như vậy, thì bạn có thể thoát khỏi nó sau đó:

$ swapoff /var/swapfile
$ rm /var/swapfile

Nhưng giả sử bạn muốn giữ điều này. Nếu bạn khởi động lại hệ thống, nó sẽ quên tất cả về tệp hoán đổi của bạn. Tệp sẽ ở đó nhưng hệ thống sẽ không được hoán đổi vì không ai chạy swaponlệnh. Để ghi lại tệp hoán đổi để nó được sử dụng khi khởi động, hãy nhập nó vào /etc/fstabtệp bằng cách thêm một dòng như:

/var/swapfile swap swap defaults 0 0

Đó là nó.


1
Typo? Bạn đặt mkswaplệnh thứ hai đó ...
Bob

Vâng, lỗi đánh máy. Bạn biết đấy, bất cứ ai có đủ đại diện đều có thể chỉnh sửa câu trả lời.
Kaz
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.