Gặp thảm hoạ cũng có cái hay

Bài viết đầu tiên cho chuyên mục này, lẽ ra gọi mục là blog cho dễ chịu, với tên “chém gió” hơi kinh dị ấy nhỉ? Kể về thảm hoạ với máy tính xảy ra cách đây mấy ngày như tự an ủi, cũng để thấy rằng chỉ một phút lơ mơ, xuống hố cả nút.

À, mà nhất là các bạn có thái độ phân biệt vùng miền, tui xin được nói trước là tui là một kẻ xét trên bình diện địa lý văn hoá, ngôn ngữ học, là người sử dụng một thứ tiếng trộn lẫn, nấu lẩu thập cẩm tả pí lù. Tui nhiều lúc sử dụng giọng điệu chua ngoa, gây khó chịu, lúc khác lại sử dụng phương ngữ của các “người anh em” trong cộng đồng 54 dân tộc… Những điều này là không chủ ý, nó là một thứ tui không lý giải được tại sao như vậy. Đen Vâu cũng không lý giải được sao anh ấy nói giọng Bắc nhưng khi hát (đọc Rap) lại giọng Nam.

Một buổi sáng đẹp trời

Đó là một ngày đẹp trời, trời Nha Trang mưa ơi là mưa, mỗi ngày có nhiều đợt mưa khác nhau, mưa rồi tạnh, tạnh rồi mưa.

Buổi sáng như mọi ngày, lên văn phòng đâu đó tầm 7:30. Việc đầu tiên: bật máy tính; việc tiếp theo: nấu nước pha cà phê.

Trong lúc chờ đợi cà phê vừa pha đủ nguội để làm một tợp như mọi ngày, hắn bật máy tính lên kiểm tra lại code kiếc hôm qua chạy ra sao. Bỗng cảm thấy ngạc nhiên đến bất ngờ khi hiện lỗi lên, trong khi tối hôm qua vẫn chạy tốt. Sau khi đọc thông báo lỗi đã được bật error_reporting(E_ALL); trong php.ini, xác định vấn đề là hỏng chức năng Memcached.

Hoá ra là thư viện liên kết động của một mô-đun PHP cách sao đó hôm qua chạy tốt, hôm nay bỗng không nạp được.

Có lẽ việc tương thích kém, vì thế, hắn lấy mã nguồn về để build lại luôn các thứ, rồi ghép vào, mất hơn hai giờ. Trong lúc gom các thứ, đàng nào cũng mất công build from source, sẵn tiện, nâng cấp lên phiên bản mới nhất của bộ 3 AMP của máy chủ LAMP luôn thể.

Thảm hoạ đã được gieo mầm

Vì cấu trúc thư mục dài dòng nên mỗi lần gõ lệnh phức tạp, vậy là làm vài cái soft link để rút gọi lại, đỡ vất vả phải gõ. Như vậy, có đến 3 cửa sổ Terminal trên Ubuntu được mở ra để gõ lệnh.

Sau một hồi gõ lệnh nọ lệnh kia, lúc này xong xuôi. Mới nghĩ dọn dẹp bớt cái mớ bùng nhùng chuẩn bị cho build trước đó cần gỡ bỏ. Vậy là gõ lệnh rm để dọn dẹp. Đã rất cẩn thận là thường chuyển vào thư mục mới gõ để xoá sạch bên trong, tránh nhầm ra bên ngoài. Thế quái nào trong các cửa sổ Terminal lại có cái cửa sổ đang đứng ở thư mục gốc của user mặc định mà dấu nhắc trông như đang ở thư mục cần dọn dẹp. Khi gõ lệnh xong, chuyển ngay qua cửa sổ khác để xem việc download một mã nguồn khác bằng wget tới đâu rồi, và dời qua bàn bên để lấy cà phê uống.

Khi quay lại máy tính, nhìn vào một cửa sổ Terminal tim tím, thấy download vẫn đang nửa chừng, chuyển qua cửa sổ gõ lệnh xoá vừa nãy vẫn chưa thấy dấu nhắc lệnh xuất hiện trở lại. Dựng tóc gáy, nhận thấy có gì đó sai sai. Lẽ nào xoá có vài thư mục mỗi thư mục chừng vài chục MB mà lâu đến như vậy. Vội vàng Ctrl + C để ngắt lệnh.

Nhìn lại mới thấy lần cuối partition dành cho /home dung lượng 367GB chiếm 97%, giờ chỉ còn chiếm 41%. Như vậy đi tong một lượng dữ liệu tính theo MB lớn hơn số còn lại.

Thiếu kinh nghiệm trong việc giữ nguyên hiện trường trên Linux

Lẽ ra lúc này dừng tất cả những gì đang chạy trên máy tính lại, để yên máy vẫn bật đó để ngồi sang máy khác tra cứu trên mạng Internet xem nên làm gì tiếp theo.

Lúc bấy giờ, hoảng loạn quá nên tui đã shutdown máy theo đúng chức năng của hệ điều hành. Cái này tưởng đâu giữ nguyên hiện trường nhưng thật tai hại làm sao.

Sau khi shutdown, lẽ ra là lấy ổ cứng mang sang máy khác để xử lý ngay còn được. Đàng này dại dột boot lại máy để chạy USB cứu hộ nhằm xử lý. Khởi động UEFI nó nạp nhanh quá, lóng ngóng bấm phím để chuyển sang ưu tiên khởi động USB không kịp, Ubuntu trên ổ cứng lại khởi động như bình thường.

Đây là lúc mà các phần mềm chạy nền đã ghi đè lên những file, thư mục đã bị xoá bởi lệnh rm gây ra thảm hoạ kia khiến cho việc phục hồi bất khả thi.

Bản sao lưu trong ổ cứng ngoài?

Cứ mỗi một tuần tui đều sao lưu một lần. Hài hước thay, trong tình huống này việc sao lưu lại chẳng có ích gì. Mọi thứ hay ho làm trong tuần vừa rồi đều bay sạch. Những tập tin, thư mục vừa tạo ra mới là cái cần vì source code được viết ròng rã mấy tháng gần đây được tinh chỉnh, di chuyển qua lại, có nhiều thay đổi lớn so với các tuần trước đây.

Vậy là bản sao lưu ở ổ cứng ngoài gần như chỉ để yên tâm rằng những thứ xưa cũ còn đó, chứ không ích gì cho công việc tuần này.

Tốn mớ tiền chứ không đùa

Gỡ ổ cứng qua gắn qua máy khác, chép lại một file image dạng RAW để vọc.

Chép nguyên ổ cứng ra thành Raw Image

Ổ cứng sau đó được gửi đi Sài Gòn để người ta phục hồi. Có hỏi qua điện thoại, chỗ phục hồi có nói rằng hồi giờ chủ yếu phục hồi với file dạng NTFS chứ còn ext4 trên hệ GPT là họ cũng chưa từng làm nhưng họ làm ở cấp thấp hơn, hy vọng vớt vát được phần nào.

Với bản RAW chép lại từ ổ cứng, tui đã mount lên thành ổ cứng ảo và dùng Live USB để boot máy lên thử cứu xem sao. Tình hình ngày hôm nay đang như hình:

Đang vớt vát lại chút file còn sót lại

Ba ngày đã trôi qua, bây giờ máy vẫn đang chạy như này:

Đang chép vài file phục hồi ra ổ cứng ngoài

Có cái hay là hay chỗ nào?

Chuyển sang ngồi máy mới dùng tạm, cũng phải tiếp tục công việc chứ không thì nhiều thứ không kịp bàn giao cho khách.

Lâu ngày không dùng máy tính chạy Windows, ngồi vào máy Windows cảm thấy lạ lẫm gì đâu. Gõ lệnh cứ phải cố nhớ lại các lệnh ngày xưa (lần cuối dùng Windows là năm 2011, nếu không kể việc thỉnh thoảng dùng Windows chỉ để in file PDF mà không đụng gì khác) mình từng biết là gì, kiểu như ls gì lại phải dir, rồi muốn xem file, bên Linux có cat, bên Windows bó tay, tra cứu PowerShell cũng muốn… vỡ mật.

Trong lúc đang vò đầu bứt tai vì công việc đình trệ, loay hoay với cái máy tính Windows cà khổ thì có lúc phải ngồi dựa ngửa ra mà thở… và có đứa bạn rủ tối hôm đó đi ăn xả xui.

Nghe đi ăn cảm thấy có lý thiệt đó, thật hay nữa là khác. Tối đến, đi ngay và luôn, vậy là tối 2 đứa đi ăn, lúc tạnh lúc mưa. Ăn xong lại mò về văn phòng xem thử liệu có thử tự cứu được quái gì không? Hỏng bét, mặc dùng là thư mục home đã nằm ở partition riêng nhưng vì đã khởi động máy lên, các ứng dụng chạy ngầm ghi be bét vào thư mục .config khiến cho mọi thứ loạn cả lên, không chắc cứu được gì nhiều.

Bài học lịch sử được rút ra

Tất nhiên là nếu gặp lại một lần nữa như hiện nay sẽ cứ để cho lệnh rm chạy cho xong luôn. Trong lúc đó không làm gì khác, cũng không shutdown máy luôn. Sau khi lệnh chạy xong sẽ:

  • Trích xuất journal ra
  • Dùng ext4magic để chép file bị xoá được phục hồi ra ổ cứng gắn ngoài

Nhưng bài học phụ trợ cho kinh nghiệm này đó là cuối mỗi ngày phải bỏ thời gian sao lưu “thành quả” của ngày hôm trước cho chắc ăn. Nhỡ có thảm hoạ xảy ra như lần này cũng không đau thương cho lắm.

Lên đầu trang