Tôi có thể sử dụng `dd` một cách đáng tin cậy để xóa hệ thống tập tin gốc trên máy chủ Linux đang chạy không?


2

Tôi có một máy chủ từ xa (vật lý) mà tôi muốn phá hủy một cách an toàn. Thật không may, đĩa được phân vùng với một phân vùng gốc lớn, đơn lẻ và không có gì khác. Tôi có thể sử dụng đáng tin cậy ddđể xóa thiết bị chứa hệ thống tập tin gốc không?

Một cái gì đó đơn giản như:

$ sudo nohup dd if=/dev/urandom of=/dev/sda bs=1024

Rõ ràng, tôi sẽ không bao giờ thấy đầu ra của công việc, vì vậy tôi sẽ không thể xác minh rằng nó đã hoàn thành thành công. Các chương trình ddnohupphải đủ nhỏ và không có gì khác chạy trên máy chủ vào thời điểm này, vì vậy không có lý do gì để các chương trình đó bị đẩy ra khỏi bộ nhớ trong khi chúng chạy. Họ sẽ chạy đến hoàn thành, hoặc hạt nhân có thể hoảng loạn tại một số điểm trước khi ddhoàn thành?

Tôi đang suy nghĩ về những khả năng khác, nhưng tôi sẽ hỏi về những điều đó trong những câu hỏi riêng biệt.

Câu trả lời:


3

Vâng , điều này là hoàn toàn có thể, nhưng nó đòi hỏi một số công việc.

Hầu hết các câu trả lời đều có sẵn trên StackExchange, nhưng tôi sẽ tóm tắt ở đây với các liên kết đến các nguồn có nhiều chi tiết hơn và xứng đáng được ghi nhận cho thông tin tuyệt vời.

  1. Xây dựng một môi trường Linux cơ bản trong bộ nhớ và chuyển sang sử dụng nópivot_root .
  2. Đảm bảo bạn có thể truy cập máy chủ từ bên ngoài bằng cách sử dụng ssh.
  3. Lau thiết bị gốc.

    # nohup dd if=/dev/urandom of=/dev/sda bs=512 > wipe.log &

  4. Đôi khi, vui lòng kiểm tra tiến trình dd, vì nó thường không cung cấp cho bạn bất kỳ dấu hiệu tiến triển nào.

    # kill -USR1 [ddpid]

  5. Quay lại sau và xác minh quá trình đã hoàn thành (kiểm tra tệp nhật ký). Hãy nhìn vào đĩa để xác minh rằng nó có rác ngẫu nhiên trên đó thay vì một hệ thống tập tin thực sự. Lau nó lần thứ hai (hoặc thứ ba) nếu bạn muốn.

  6. Quyết định làm gì tiếp theo.

    Nếu bạn muốn, bạn chỉ cần dừng lại ở đây và đi bộ. Khi máy tắt, bạn sẽ có một thiết bị không khởi động được an toàn như bạn quyết định ddcó thể làm cho nó.

    Điều tôi quyết định làm tiếp theo là thử điều mà tôi chưa từng làm trước đây: xây dựng một hệ thống cơ sở Linux từ xa. Vì vậy, tôi tiếp tục:

  7. Sử dụng fdiskđể phân vùng lại thiết bị gốc như mong muốn và sử dụng mkfsđể tạo hệ thống tệp trên các phân vùng đó.

  8. Sử dụng debootstrapđể cài đặt môi trường Debian cơ bản trên hệ thống tệp gốc (tương lai).
  9. chrootđến môi trường cơ sở mới, cài đặt các gói bổ sung (ví dụ sshd) kernel và bộ tải khởi động (ví dụ: grubđảm bảo bộ tải khởi động thực sự được cài đặt vào thiết bị - không chỉ cài đặt gói).
  10. Sử dụng root_pivotđể chuyển sang môi trường mới giống như cách bạn đã làm trong bước # 1 ở trên. Mang theo tất cả các dịch vụ (ví dụ sshd) để đảm bảo bạn sẽ có thể truy cập máy chủ, ví dụ như thông qua ssh.
  11. Khởi động lại. Hệ điều hành mới của bạn sẽ sẵn sàng hoạt động.

1

Trong môi trường doanh nghiệp, bạn sẽ muốn có một số loại Quản lý ngoài băng như IPMI, iDRAC hoặc giải pháp KVM từ xa khác. Bạn sẽ sử dụng hệ thống đó để khởi động vào liveCD nơi có thể thực hiện và xác nhận việc xóa sạch. Nếu mục tiêu của bạn là xóa an toàn thì bạn cần xác minh hoạt động. Bạn không thể chỉ nói "Chà, đáng ra nó phải hoạt động". Bởi vì ngay cả khi nó được cho là hoạt động không có nghĩa là nó đã làm. Một số hệ thống IPMI cho phép bạn khởi động từ xa từ ISO mà bạn có từ xa. Bạn có thể sử dụng một cái gì đó đơn giản như hình ảnh DBAN.


Tôi đã thử làm điều này với hệ điều hành đã khởi động và nó đã thất bại. Làm điều đó mà không có hệ điều hành khởi động hoặc với hệ điều hành chạy từ ramdisk dường như là giải pháp. Vì bạn đã đề cập đến nó là một máy chủ mà tôi cho rằng không có quản lý ban nhạc nên câu trả lời của Hackslash là tốt. +1
Hennes

Mặc dù đánh giá cao câu trả lời của bạn cho Sự thật của nó , nhưng nó không thực sự trả lời câu hỏi thực tế của tôi.
Christopher Schultz

Chà, Chris, câu trả lời là bạn không thể chắc chắn điều gì sẽ xảy ra sau khi hệ thống ngừng hoạt động và bạn mất kết nối từ xa. Câu trả lời đó thậm chí còn ít hữu ích hơn. Bạn phải cho rằng nó thất bại nếu bạn không thể xác nhận thành công.
HackSlash
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.