Làm cách nào để tôi thực hiện chứng minh mất điện Ubuntu Ubuntu?


18

Tôi thích chạy một hệ thống không giám sát cho việc sử dụng 'kiosk' mỗi ngày.

Tuy nhiên, hệ thống có thể bị tắt bất cứ lúc nào mà không cần ai đó thực hiện tắt máy đúng cách trước đó. Theo mặc định, Ubuntu dự kiến ​​sẽ ngừng hoạt động do mất điện. Sau khi khởi động lại sau khi mất điện, fsck có thể được chạy để kiểm tra hệ thống tệp và fsck có thể yêu cầu hệ thống khởi động lại sau khi hoàn thành. Vì vậy, ngay cả khi không có dữ liệu cấu hình bị hỏng, máy vẫn có thể không khởi động tốt sau khi mất điện. Vì vậy, tôi đã thử nghiệm một số cách giải quyết:

  1. thay đổi mức ưu tiên fsck của root mount thành 0(trường cuối cùng trong fstabmục gốc) để ngăn chạy fscksau mỗi lần mất điện. Tuy nhiên, hệ thống có thể khởi động với chỉ đọc gốc, điều này không được nhiều dịch vụ mong đợi và dẫn đến lời nhắc đăng nhập bảng điều khiển thay vì đăng nhập đồ họa.

  2. Thay thế errrors=remount-robằng errors=continue. Điều này mang lại cảm giác tồi tệ rằng mất dữ liệu hơn nữa có thể xảy ra bởi một hệ thống tập tin không nhất quán. Tuy nhiên, với fsckkích hoạt lại, nó sẽ tăng khả năng khởi động của hệ thống sau khi mất điện. Vì vậy, tôi đã giảm 1).

  3. Cấu hình lại grub2 để sử dụng thời gian chờ tùy chọn mặc định bình thường sau khi khởi động không thành công. Đối với điều đó, tôi đã thêm GRUB_RECORDFAIL_TIMEOUT=0vào /etc/default/grub.

Tuy nhiên, thật khó để biết liệu những hack này có làm mất điện hệ thống hay không. Có ý kiến ​​gì không? Bất kỳ ai có thể làm gì?


1
Tôi không thực sự có được những gì bạn đang cố gắng để đạt được. Bạn có ý nghĩa gì bởi "bằng chứng mất điện"? Bạn có thể làm rõ nó một chút?
André Stannek

Đã thêm một giới thiệu làm rõ. Tôi thích một hệ thống hoạt động nhanh trở lại bình thường mà không cần tương tác bảo trì sau khi mất điện.
dronus

Câu trả lời:


16

Đối với ứng dụng kiosk, vấn đề được giải quyết bằng cách sử dụng phân vùng gốc chỉ đọc. Ngoài ra, mọi thay đổi người dùng thực hiện hoặc lưu sẽ được hoàn tác trong lần khởi động lại tiếp theo.

Để cung cấp một gốc có thể ghi cho hầu hết các nhu cầu ứng dụng, lớp phủ có thể được sử dụng để phủ lên phân vùng chỉ đọc với một tempfs ram có thể ghi.

Có một tập lệnh giúp tạo một thiết lập như vậy ở cuối https://help.ubfox.com/community/aufsRootFileSystemOnUsbFlash . Kịch bản chứa các hướng dẫn để thiết lập điều này:

  • đặt tệp vào / etc / initramfs-tools / scripts / init-bottom / root-ro
  • sudo chmod 0755 root-ro
  • sudo update-initramfs -u

Tôi đề nghị để thêm GRUB_RECORDFAIL_TIMEOUT=0vào /etc/default/grubvà chạy sudo update-grubquá, nếu không thì menu boot có thể xuất hiện mà không cần thời gian chờ.

Sau đó, khởi động lại. Sau đó, máy bắt đầu ở chế độ chỉ đọc, có thể được kiểm tra bằng mount. Mọi thay đổi được áp dụng sẽ biến mất trong lần khởi động lại tiếp theo. Để thực hiện bất kỳ thay đổi nào, cài đặt phần mềm và cập nhật, v.v. bạn chỉ cần vào menu GRUB, nhấn eđể thay đổi dòng lệnh khởi động và nối disable-root-ro=truevào dòng bắt đầu bằng kernel. Nhấn F10 để tiếp tục khởi động. Sau đó, bạn có thể sử dụng mountđể xác nhận root được gắn ghi như bình thường. Thực hiện các thay đổi của bạn và khởi động lại, hệ thống chỉ đọc lại.


+1 vì hệ thống tập tin gốc chỉ đọc là điều đầu tiên tôi nghĩ đến.
Nathan Osman

Điều này thực sự hoạt động khá tốt. Tuy nhiên, sau bất kỳ giá trị đọc / ghi nào, hệ thống nên được khởi động lại một cách sạch sẽ để kiểm tra xem mọi thứ có sạch không. Những thứ như GRUB failafe, một trình duyệt cho thấy nó không được đóng hoàn toàn hoặc fsck nếu không sẽ được bảo tồn quá lâu. Nếu điều đó xảy ra, người ta phải khởi động lại đọc / ghi lần khác và tắt máy một lần nữa.
dronus

9

Một số lần sau khi khởi động lại ô uế (nói mất nguồn hoặc nhấn nút đặt lại hoặc thậm chí là hoảng loạn hạt nhân), hệ thống sẽ không khởi động yêu cầu bạn nhấn "y" để fsck sửa chữa phân vùng.

Nếu bạn muốn tránh điều này, hãy chỉnh sửa / etc / default / rcS và thay đổi:

FSCKFIX=no

Đến:

FSCKFIX=yes

Điều này sẽ đảm bảo sửa chữa này được chạy tự động mà không cần nhắc bạn.

Nhược điểm có thể là bạn có thể mất dữ liệu và bạn có thể muốn lấy ổ cứng ra và sao chép nó trước nếu có bất cứ điều gì quan trọng trên nó không được sao lưu.

Ví dụ: nếu bộ điều khiển ổ cứng của bạn có lỗi và fsck đã xác định sai phân vùng là bị hỏng và cố gắng sửa chữa nó, điều đó có thể dẫn đến mất dữ liệu có thể tránh được. Tôi chưa bao giờ tự mình trải nghiệm điều này và đã xử lý gần một nghìn máy chủ trong 7 năm qua hoặc lâu hơn - nhưng đây vẫn là điều cần lưu ý.


7

Kể từ hôm nay, đối với giải pháp chỉ đọc kiosk, người ta cũng có thể cài đặt gói overlayrootbằng cách

sudo apt-get install overlayroot

sẽ dễ dàng cung cấp một giải pháp hoàn chỉnh giống như một trong những câu trả lời được phê duyệt. Nó cũng cho phép các lệnh có lợi

sudo overlay-chroot

mà sẽ đăng nhập vào một shell có đĩa cơ sở chỉ đọc trước đây được gắn vào /. Sau đó, có thể thực hiện bất kỳ thay đổi nào đối với hệ thống được bảo vệ như và ví dụ sử dụng apt-getđể cài đặt các gói vào đĩa chỉ đọc trước đây. Tuy nhiên, sau khi thoát khỏi trình bao, việc khởi động lại được khuyến khích mạnh mẽ vì các tệp được ghi đè tạm thời trên RAM có thể che khuất các tệp mới được cài đặt.

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.