Ngủ đông với tập tin Hoán đổi bằng uswusp
Mặc dù có thể ngủ đông để hoán đổi tập tin và nó được cho là hoạt động với hệ thống ngủ đông bằng cách thiết lập các tham số kernel. Tuy nhiên, tôi không thể khiến nó tiếp tục lại nên thay vào đó chuyển sang sử dụng uswsusp (tạm dừng phần mềm không gian người dùng) . Dưới đây là các bước tôi đã sử dụng trên Ubuntu 17.04 / 17.10.
Tạo tập tin hoán đổi
Các lệnh để tạo tệp hoán đổi 4GiB được định dạng, được gắn và thêm vào /etc/fstab
:
sudo fallocate -l 4g /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
Xác minh phân vùng tệp hoán đổi
sudo findmnt -no SOURCE,UUID -T /swapfile
> /dev/sda1 11cc33ee-1234-abcd-1234-ddeeff112233
Cài đặt Tạm dừng phần mềm không gian người dùng (uswsusp)
sudo apt install uswsusp
Cấu hình uswsusp
Để tạo /etc/uswsusp.conf
và tạo lại initramfs
:
sudo dpkg-reconfigure -pmedium uswsusp
Yes
để ' Tiếp tục mà không có không gian hoán đổi hợp lệ? ' (Thuật sĩ chưa đặt tệp hoán đổi.)
- Chọn phân vùng mà tệp hoán đổi nằm trên, tham chiếu chéo với các chi tiết
findmnt
ở trên. ( Lưu ý: không phải chính tệp hoán đổi )
Lưu ý: Mọi thay đổi được thực hiện thủ công /etc/uswsusp.conf
sẽ yêu cầu tạo lại initramfs
sau đó bằng lệnh này:
sudo update-initramfs -u
Kiểm tra uswusp ngủ đông
sudo s2disk
Nên có snapshot
tin nhắn trên màn hình trên chế độ ngủ đông và tiếp tục.
Sử dụng s2disk với hệ thống ngủ đông systemd
Theo mặc định systemd sẽ sử dụng các lệnh ngủ đông của riêng nó, vì vậy thay thế chúng bằng các lệnh uswusp bằng cách ghi đè systemd-hibernate.service
:
sudo systemctl edit systemd-hibernate.service
Trong trình soạn thảo văn bản mở ra, đặt văn bản sau (yêu cầu ExecStart trống). Sau đó lưu và thoát:
[Service]
ExecStart=
ExecStart=/usr/sbin/s2disk
ExecStartPost=/bin/run-parts -a post /lib/systemd/system-sleep
Điều này sẽ tạo /etc/systemd/system/systemd-hibernate.service.d/override.conf
tập tin với các chi tiết ghi đè.
Kiểm tra hệ thống ngủ đông:
systemctl hibernate
Lưu ý: Để kiểm tra xem systemd override.conf
đã được tạo, tải và không có lỗi, hãy chạy:
systemctl status systemd-hibernate.service
Tài liệu tham khảo:
ExceStart=run-parts -a post /lib/systemd/system-sleep
làExceStartPost=run-parts -a post /lib/systemd/system-sleep