বুট করার সময় কীভাবে আমি fsck অ-ইন্টারেক্টিভভাবে চালাতে পারি?


19

আমার 1500 মাইল দূরে একটি ডেটাসেন্টারে একটি মাথাবিহীন উবুন্টু 12.04 সার্ভার রয়েছে। দুবার এখন রিবুট করার সময় সিস্টেমটি সিদ্ধান্ত নিয়েছে যে এটি fsck করতে হবে। দুর্ভাগ্যক্রমে উবুন্টু ইন্টারেক্টিভ মোডে fsck দৌড়েছে, তাই আমার ডেটাসেন্টারে কাউকে যেতে বলতে, কনসোলে প্লাগ করতে এবং ওয়াই কী টিপতে হয়েছিল। আমি কীভাবে এটি সেট আপ করব যাতে fsck -yবা -p(ওরফে -a) পতাকা সহ বুটের সময় অ-ইন্টারেক্টিভ মোডে চলে ?

আমি যদি উবুন্টুর বুট প্রক্রিয়াটি সঠিকভাবে বুঝতে পারি তবে, init মাউন্টলকে অনুরোধ করে যা ফলস্বরূপ fsck ডাকে। তবে fsck কীভাবে চাওয়া হয়েছে তা কনফিগার করার কোনও উপায় আমি দেখতে পাচ্ছি না। এটা কি সম্ভব?

(একটি পরামর্শ tune2fs -i 0 -c 0অগ্রাহ্য করার জন্য ; আমি সচেতন যে আমি পর্যায়ক্রমিক fscks প্রতিরোধ করতে ব্যবহার করতে পারি ।)

ফলোআপ প্রশ্নের প্রতিক্রিয়া হিসাবে, আমার / ইত্যাদি / fstab এর প্রাসঙ্গিক বিবরণ এখানে। আমি বিশ্বাস করি না যে আমি এটি উবুন্টু যা রেখেছি তা থেকে এটি সম্পাদিত করেছি।

UUID=3515461e-d425-4525-a07d-da986d2d7e04 /               ext4    errors=remount-ro 0       1
UUID=90908358-b147-42e2-8235-38c8119f15a6 /boot           ext4    defaults        0       2
UUID=01f67147-9117-4229-9b98-e97fa526bfc0 none            swap    sw              0       0

1
এই প্রশ্নটি এবং এর উত্তরগুলি জড়িত /etc/default/rcS2019 সালে সত্যই বৈধ নয়, উবুন্টু 16 এবং উবুন্টু 18 এখন সিস্টেমড ব্যবহার করছে। আমি সিস্টেমডের জন্য পুরো গল্পটি জানি না তবে fsck.repairকনফিগারেশন / কার্নেল কমান্ড লাইন বিকল্পটি প্রাসঙ্গিক বলে মনে হচ্ছে। দস্তাবেজগুলি বর্তমানে এটির ডিফল্ট বলে preen, যার অর্থ -p। এটি yesজন্য সেট করা যেতে পারে -y/etc/default/grubএটি সেট করার জায়গা হতে পারে। আমি আরও কৃতজ্ঞ যদি আরও জ্ঞানী কেউ একটি আধুনিক সিস্টেমযুক্ত উত্তর সরবরাহ করে।
নেলসন

উত্তর:


29

সেটিং তার একটি হল , / etc / ডিফল্ট / rcS , FSCKFIX=yes। এর অর্থ "বুট চলাকালীন অসঙ্গতিগুলি সহ ফাইল সিস্টেমগুলি স্বয়ংক্রিয়ভাবে মেরামত করা" এবং -yপতাকাটি দিয়ে fsck চালিত করে । এটি noআমার উভয় উবুন্টু সিস্টেমে সেট করা ছিল ।

এমনকি সেট করা noথাকলেও বুট টাইম fsck এখনও কিছুটা নিরবচ্ছিন্ন থাকে। মাউন্টএল fsck এর সাথে -aএকটি প্রতিশব্দ -p, যার অর্থ "হস্তক্ষেপ ছাড়াই নিরাপদে সমাধান করা যেতে পারে এমন কোনও ফাইল সিস্টেম সমস্যা স্বয়ংক্রিয়ভাবে সমাধান করুন" means সুরক্ষিতভাবে -pইন্টারেক্টিভ মোডে নেমে আসে যদি সেখানে কোনও অনিরাপদ সংশোধন করা হয়। পুরোপুরি স্বয়ংক্রিয়ভাবে চালনার জন্য আপনার প্রয়োজন -yবা FSCKFIX=yes

এখানে Mountall.c। এর কোড সম্পর্কিত প্রাসঙ্গিক

if (fsck_fix || mnt->fsck_fix) {
  NIH_MUST (nih_str_array_add (&args, NULL, &args_len, "-y"));
} else {
  NIH_MUST (nih_str_array_add (&args, NULL, &args_len, "-a"));
}

সঙ্গে যোগ করে systemd একই অর্জন করা যেতে পারে সাম্প্রতিক অপারেটিং সিস্টেমের জন্য fsck.repair=yesPARAM করার GRUB_CMDLINE_LINUX_DEFAULTমধ্যে/etc/default/grub
Maxxer

2

উবুন্টু 15,16,17+ এর জন্য FSCKFIX মান সেটিংটি lib / init / vars.sh এ অবস্থিত

grep -r FSCKFIX * 2>/dev/nullএটি ফাইন করার জন্য কমান্ড ব্যবহার করতে পারেন ।


1
ধন্যবাদ! আমি ইতিবাচক নই তবে সেই ফাইলের মন্তব্যগুলি আপনাকে সেটিংটি এখনও কনফিগার করতে হবে /etc/default/rcS/lib/init/vars.shএর জন্য একটি ডিফল্ট আছে FSCKFIXতবে তারপরে উত্স /etc/default/rcSযা এটি ওভাররাইড করতে পারে। OTOH একটি নতুন ইনস্টল করা উবুন্টু 18 সিস্টেমের কোনও rcSফাইল নেই file
নেলসন

1

আপনার কাছে এমন কোনও পতাকা নেই যাতে এটি fstab এ সৃষ্টি করতে পারে এবং আপনার আরআইডি স্ক্রিপ্টগুলি পরীক্ষা করে দেখুন। (এটি কোথায় ব্যবহৃত হয়েছে তা জানতে আপনার 'এসসি স্ক্রিপগুলি গ্রেপ করার চেষ্টা করুন) আমার সিস্টেমটি fsck অ-ইন্টারেক্টিভ চালায়, সুতরাং আপনার তুলনা করার জন্য আমার fstab এর একটি অনুলিপি এবং আমার / ইত্যাদি / init / মাউন্টল স্ক্রিপ্টের কিছু অংশ এখানে দেওয়া হয়েছে

$ cat /etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
UUID=acbe3514-33a3-4170-b1be-df7b8460a49a /               ext4    errors=remount-ro 0       1
UUID=d361f696-7abc-11e1-9043-5711de71ade6 /home           ext4    defaults        0       2
UUID=213e032c-fce9-4e1b-9d64-0779f0db4208 none            swap    sw              0       0

/ Etc / init / মাউন্টল থেকে স্নিপেট

script
    . /etc/default/rcS
    [ -f /forcefsck ] && force_fsck="--force-fsck"
    [ "$FSCKFIX" = "yes" ] && fsck_fix="--fsck-fix"

    # set $LANG so that messages appearing in plymouth are translated
    if [ -r /etc/default/locale ]; then
        . /etc/default/locale
        export LANG LANGUAGE LC_MESSAGES LC_ALL
    fi

    exec mountall --daemon $force_fsck $fsck_fix
end script

1
সাহায্যের জন্য ধন্যবাদ. grep FSCKFIX /etc/default/rcSআপনার সিস্টেমে কী বলছেন দয়া করে বলতে পারেন ?
নেলসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.