Điểm:2

Làm cách nào để đặt thời gian chờ đợi ổ cứng bị thiếu trong khi hệ thống khởi động?

lá cờ it

Hệ thống: Ubuntu 20.04 với khởi động EFI.


Làm rõ lý do tại sao tôi cần điều này

Tôi đã cấu hình hai tráo đổi phân vùng:

  • Một trao đổi chính trên ổ cứng thứ hai. Nó được sử dụng để ngủ đông. (Chức năng ngủ đông tốt hơn nên sử dụng trên ổ cứng để kéo dài tuổi thọ cho SSD.)
  • Phân vùng trao đổi thứ hai trên SSD với hệ thống. Đây là trường hợp nếu tôi sử dụng SSD làm đĩa đơn - khi ổ cứng thứ hai bị tháo và thiếu. Trong trường hợp này, tôi chỉ muốn hệ thống hoạt động bình thường - ngay cả khi không có chức năng ngủ đông (hoặc với một chức năng sử dụng trao đổi trên SSD).

Tôi đã làm gì:

  • Đã tạo phân vùng trao đổi trên ổ cứng.
  • Đặt UUID của nó làm sơ yếu lý lịch cho sâu bọ.

/etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="sơ yếu lý lịch giật gân yên tĩnh=UUID=25d5d4af-736a-4232-a4bb-492499bc1038"
  • Đặt cả hai phân vùng trao đổi thành fstab ưu tiên trao đổi trên HDD và không thất bạix-systemd.device-timeout=3s tùy chọn. Tùy chọn này cho trường hợp thiếu ổ cứng. Nếu không có tùy chọn này và khi thiếu ổ cứng, hệ thống sẽ bị treo trong khi khởi động trong 90 giây.

/etc/fstab config cho phân vùng trao đổi:

#hoán đổi trên ổ cứng
UUID=25d5d4af-736a-4232-a4bb-492499bc1038 không hoán đổi nofail,pri=20,x-systemd.device-timeout=3s 0 0
#hoán đổi trên SDD
UUID=e78a171a-3c52-4cd1-b86a-17709f4b49d9 không hoán đổi pri=10 0 0

Tôi có vấn đề gì:

Khi SSD và HDD được kết nối với máy tính xách tay, mọi thứ đều ổn. Khi ổ cứng bị thiếu trong quá trình khởi động hệ thống sâu bọ cố gắng tìm phân vùng có trao đổi trên ổ cứng và bị treo trong khoảng 33 giây.

Sau khi hệ thống khởi động trong nhật ký, có các thông báo sau về thời gian chờ đợi ổ cứng bị thiếu (mà tôi đã cố tình xóa) với phân vùng trao đổi:

/var/log/boot.log:[ESC[0;1;31m TIME ESC[0m] Đã hết thời gian chờ thiết bị ESC[0;1;39m/dev/disk/by-uuid/46e39f74-e1b3-4705-9bac -84ee2593b4d
4ESC[0m.

/var/log/syslog:Feb 23 14:23:26 Device-2 kernel: [ 0.032426] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.13.0-28-generic root=UUID=a59635ec-2cef-4396- bdf3-be7e4b23fc73 ro sơ yếu lý lịch giật gân yên tĩnh=UUID=25d5d4af-736a-4232-a4bb-492499bc1038 vt.handoff=7

/var/log/syslog:Ngày 23 tháng 2 14:56:14 Thiết bị-2 systemd[1]: dev-disk-by\x2duuid-25d5d4af\x2d736a\x2d4232\x2da4bb\x2d492499bc1038.device: Job dev-disk-by\x2duuid -25d5d4af\x2d736a\x2d4232\x2da4bb\x2d492499bc1038.device/start đã hết thời gian chờ.

Những gì tôi muốn:

Để đặt thời gian chờ cho ổ cứng bị thiếu không quá 5 giây. Bây giờ nó được đặt mặc định ở đâu đó trong hệ thống trong 30-33 giây.


Tôi đã thử như sau:

  • Để tìm thuộc tính thời gian chờ trong sâu bọ cấu hình. Trong /etc/default/grub có thể được chỉ định hai tùy chọn liên quan:
  • GRUB_HIDDEN_TIMEOUT
  • GRUB_RECORDFAIL_TIMEOUT

Nhưng chúng không dành cho trường hợp này. Thông tin về các tùy chọn này có thể được tìm thấy ở đây:

Tôi đã cố gắng phân tích mã cho sâu bọ Trong /etc/grub.d/ và hiểu rằng thời gian chờ đó có thể được chỉ định trong cấu hình khởi động hệ thống - trong hệ thống. Tôi đã cố gắng tìm tùy chọn thời gian chờ tương ứng trong hệ thống cấu hình:

Sudo grep -iR hết thời gian /etc/systemd/
/etc/systemd/system/rescue.target.wants/grub-initrd-fallback.service:TimeoutSec=0
/etc/systemd/system/network-online.target.want/NetworkManager-wait-online.service:ExecStart=/usr/bin/nm-online -s -q --timeout=30
/etc/systemd/system/emergency.target.wants/grub-initrd-fallback.service:TimeoutSec=0
/etc/systemd/system/multi-user.target.want/ua-reboot-cmds.service:TimeoutSec=0
/etc/systemd/system/multi-user.target.want/unattends-upgrades.service:TimeoutStopSec=1800
/etc/systemd/system/multi-user.target.wants/grub-initrd-fallback.service:TimeoutSec=0
/etc/systemd/system/multi-user.target.wants/snapd.recovery-chooser-trigger.service:# chặn khởi động dịch vụ cho đến khi phát hiện thấy kích hoạt hoặc hết thời gian chờ
/etc/systemd/system/sleep.target.wants/grub-initrd-fallback.service:TimeoutSec=0
/etc/systemd/system.conf:#DefaultTimeoutStartSec=90s
/etc/systemd/system.conf:#DefaultTimeoutStopSec=90s
/etc/systemd/system.conf:#DefaultTimeoutAbortSec=
/etc/systemd/user.conf:#DefaultTimeoutStartSec=90s
/etc/systemd/user.conf:#DefaultTimeoutStopSec=90s
/etc/systemd/user.conf:#DefaultTimeoutAbortSec=
/etc/systemd/logind.conf:#HoldoffTimeoutSec=30s

Đã thử thay đổi tùy chọn với giá trị 30 giây thành 5 giây:

/etc/systemd/system/network-online.target.want/NetworkManager-wait-online.service:ExecStart=/usr/bin/nm-online -s -q --timeout=5
/etc/systemd/logind.conf:#HoldoffTimeoutSec=5s

Nhưng điều này đã không cho kết quả mong đợi.

Ngoài ra tôi đã cố gắng thiết lập tương tự nhãn cho các phân vùng hoán đổi và để chỉ định tiếp tục phân vùng hoán đổi bằng nhãn này (/dev/đĩa/theo nhãn/...), không phải bởi UUID. Nhưng trong trường hợp như vậy, không có quyết định phân vùng trao đổi nào từ cả hai sẽ được sử dụng để tải hệ thống từ trạng thái ngủ đông.

Tôi tìm thấy câu hỏi tương tự: Cách đặt thời gian chờ cho công việc bắt đầu systemd "dev-md125.device" (mdadm) Nhưng trong đó không có chi tiết cách định cấu hình thời gian chờ trong hệ thống cho ổ cứng.

Đây có ví dụ làm thế nào để thiết lập Thời gian chờBắt đầuSechttpd.service

Có thể chỉ định thời gian chờ như vậy để gắn ổ cứng trong khi khởi động hệ thống không?

Cảm ơn.

lá cờ cn
Không sử dụng phân vùng, sử dụng tệp hoán đổi và vấn đề của bạn không tồn tại: bạn có thể đặt trao đổi trong một thư mục trên mỗi đĩa. "(Chức năng ngủ đông tốt hơn nên sử dụng trên ổ cứng HDD để kéo dài tuổi thọ cho SSD.)" Tôi nghi ngờ rằng nó sẽ ảnh hưởng thực sự đến tuổi thọ của ổ SSD. Ổ cứng SSD của tôi bền gấp 10 lần máy tính xách tay của tôi và khi tôi mua một chiếc máy tính xách tay mới, tôi sẽ nhận được một ổ SSD mới (nhanh hơn nhiều). Tất cả những gì bạn thực sự cần là sao lưu dữ liệu cá nhân trên SSD.
lá cờ it
Không nghĩ theo hướng này. Điều đó thật thú vị. Cảm ơn vì ý tưởng! Tôi có ổ SSD cũ của Toshiba khá tốt - không muốn giết nó 3 lần mỗi ngày khi ngủ đông )
lá cờ cn
Oh sau đó nó thực sự có thể là một vấn đề. Các ssd cũ có rất nhiều lỗi nhỏ trong việc lưu trữ dữ liệu. Tôi cũng có thể đề nghị tốt hơn là không ngủ đông nếu bạn sử dụng SSD để khởi động.Khởi động nhanh đến mức tôi luôn tắt máy (tôi đoán là thời gian khởi động của bạn sẽ dưới 15 giây?).
lá cờ it
@Rinzwind, Có, tôi cũng thường tắt nguồn. Thời gian khởi động khá nhanh - khoảng 20-30 giây. Nhưng ngủ đông đôi khi cũng hữu ích - nhiều ứng dụng với trạng thái của chúng có thể được lưu ở chế độ ngủ đông - và việc đợi 1 phút trong khi ngủ đông được tải chúng từ ổ cứng đối với tôi không phải là vấn đề. Ngoài ra, nếu trao đổi nằm trên ổ cứng, chế độ ngủ đông sẽ miễn phí cho SSD - ý tôi là nó sẽ không ảnh hưởng gì đến nó (nhưng tất nhiên nó không nhanh như trên SSD). Và cài đặt ngủ đông cũng mở các tùy chọn `ngủ kết hợp` và `ngủ rồi ngủ đông` - điều này đôi khi cũng hữu ích. Vì vậy, tôi cho rằng thiết lập này đáng giá.
lá cờ it
@Rinzwind Tôi đã phân tích cách tiếp cận với các tệp hoán đổi và không hiểu chúng có thể giúp ích như thế nào trong tình huống của tôi. Trong trường hợp tệp hoán đổi (cả hai - trên HDD và SDD), tôi cũng phải chỉ định phân vùng UUID của vị trí tệp hoán đổi trong thuộc tính `Grub2` `GRUB_CMDLINE_LINUX_DEFAULT` ở định dạng `resume=UUID= sơ yếu lý lịch_offset=` nguồn: [CÁCH THỨC: Sử dụng tệp hoán đổi thay vì phân vùng và ngủ đông](https://ubuntuforums.org/showthread.php?t=1042946) Và phải có cùng một vấn đề trong quá trình khởi động với UUID bị thiếu trên tệp hoán đổi được đặt. Bạn có thể vui lòng làm rõ làm thế nào họ có thể giúp đỡ?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.