2012-03-29 30 views
9

Tôi có một máy chủ ubuntu (11.10) trên một máy tính bảng đơn thỉnh thoảng có thể bị tắt nguồn đột ngột. Khi nó được khởi động sau đó, fsck sẽ nhắc người dùng nhấn 'f' để kiểm tra ổ đĩa. Bởi vì máy chủ này thường không có màn hình và bàn phím được kết nối, và cách duy nhất để truy cập thông thường là thông qua SSH, điều này rất bất tiện.Cách tự động trả lời lời nhắc fsck khi khởi động

Có cách nào đảm bảo rằng khi khởi động bất kỳ yêu cầu kiểm tra fsck nào có thể được thực hiện mà không cần người dùng nhập liệu? Về cơ bản, tôi muốn nó luôn chạy 'fsck -y' khi khởi động (khi phát hiện vấn đề), thay vì nhắc người dùng nhập liệu.

Cảm ơn!

+0

-a: Tự động sửa chữa hệ thống tệp mà không có bất kỳ câu hỏi nào (sử dụng tùy chọn này một cách thận trọng). Lưu ý rằng e2fsck (8) chỉ hỗ trợ -a cho khả năng tương thích ngược. Tùy chọn này được ánh xạ tới tùy chọn -p của e2fsck an toàn để sử dụng, không giống như tùy chọn -a mà hầu hết các trình kiểm tra hệ thống tệp hỗ trợ. – tawman

+0

Tôi có thể thêm tùy chọn -a đó ở đâu? Tôi không chạy fsck bản thân mình, máy chủ ubuntu chạy nó khi khởi động tự động. –

+0

Máy chủ unbuntu sẽ chỉ chạy một trong các script init.d. VM ảo của tôi không hoạt động, nhưng bạn có thể tìm thấy tập lệnh khởi động nào đang chạy fsck và thêm tùy chọn – tawman

Trả lời

10

Vì vậy, tôi tìm thấy hai giải pháp liên quan đến vấn đề của tôi:

Tôi không chắc chắn đây là những giá trị ở khắp mọi nơi, nhưng họ làm việc trên máy chủ Ubuntu 11.10.

/etc/default/RCS trông như thế này:

# 
# /etc/default/rcS 
# 
# Default settings for the scripts in /etc/rcS.d/ 
# 
# For information about these variables see the rcS(5) manual page. 
# 
# This file belongs to the "initscripts" package. 

# delete files in /tmp during boot older than x days. 
# '0' means always, -1 or 'infinite' disables the feature 
TMPTIME=0 

# spawn sulogin during boot, continue normal boot if not used in 30 seconds 
SULOGIN=no 

# do not allow users to log in until the boot has completed 
DELAYLOGIN=no 

# assume that the BIOS clock is set to UTC time (recommended) 
UTC=yes 

# be more verbose during the boot process 
VERBOSE=no 

# automatically repair filesystems with inconsistencies during boot 
FSCKFIX=no 

Hãy chắc chắn rằng dòng cuối cùng thay vì đọc

# automatically repair filesystems with inconsistencies during boot 
FSCKFIX=yes 

Một rào cản tôi phải hệ thống chỉ khởi động luôn mà không cần sự can thiệp của người dùng là màn hình bộ nạp khởi động grub chờ đầu vào của người dùng sau khi khởi động không thành công/bị gián đoạn.

Điều này đòi hỏi chỉnh sửa các tập tin cài đặt grub trong /etc/grub.d/00_header

/etc/grub.d$ grep -r -n -C3 timeout ./ 
./00_header-229- fi 
./00_header-230-fi 
./00_header-231- 
./00_header:232:make_timeout() 
./00_header-233-{ 
./00_header-234- cat << EOF 
./00_header-235-if [ "\${recordfail}" = 1 ]; then 
./00_header:236: set timeout=-1 
./00_header-237-else 
./00_header:238: set timeout=${2} 
./00_header-239-fi 
./00_header-240-EOF 
./00_header-241-} 

chỉ cần thay đổi dòng 236 để

set timeout = 0 

và dòng 238 để

set timeout = 0 

Điều này làm cho hệ thống không bao giờ tạm dừng trong khi khởi động. Sau khi chỉnh sửa tệp, hãy chạy sudo update-grub để nhận các thay đổi được triển khai trong tệp /boot/grub/grub.cfg.

3

Đối với grub, thay vì mày mò với các tập tin như trên, và nếu bạn đang sử dụng phiên bản mới nhất của GRUB là grub2, cách sạch sẽ được:

Thay đổi "/ etc/default/grub" Thêm dòng GRUB_RECORDFAIL_TIMEOUT="30" Sau đó, chạy update-grub

Các vấn đề liên quan