কিছু সাম্প্রতিক আপডেটের পরে, আমার কম্পিউটার আর বুট হয় না! আমি যা নির্ধারণ করতে পারি তা এখানে:
- এটি একটি খুব সাম্প্রতিক কম্পিউটার যা আমাকে কর্পোরেট আইটি সরবরাহ করেছিল। এটির সাম্প্রতিক ইন্টেল সিপিইউ (স্কাইলেক প্রজন্ম) রয়েছে।
- কম্পিউটার উবুন্টু 16.04 চালায়।
- কম্পিউটারটি সর্বশেষে মার্চ মাসের কিছু সময় বুট হয়েছিল। সমস্যাটি সম্ভবত সফ্টওয়্যার আপডেট বা একটি হার্ডওয়্যার বাগের কারণে is
- আমার আরও একটি কম্পিউটার চলছে 16.04 একই সফটওয়্যারটি ইনস্টল করে (আমি ব্যবহার করেছি
apt-clone
), এবং এটি ঠিক কাজ করে। এটির বিভিন্ন হার্ডওয়্যার রয়েছে (amd64, তবে বিভিন্ন সিপিইউ, বিভিন্ন জিপিইউ ইত্যাদি)। - কার্নেলটি শুরু হয়, initrd সঠিকভাবে কাজ করে works আমি যখন গ্রাফিক্স মোডে একটি স্প্ল্যাশ স্ক্রিন দিয়ে বুট করি তখন আমার ডিএম-ক্রিপ্ট ভলিউমের জন্য পাসওয়ার্ডের জন্য অনুরোধ জানানো হয়, এবং সর্বশেষে আমি দেখতে পাই এটি সফলভাবে মাউন্ট হয়েছে।
- আমি লগইন প্রম্পট পাওয়ার আগে হ্যাং ঘটে। কম্পিউটার হ্যাং হয়ে গেলে, এটি একটি হার্ড হ্যাং। এমনকি Alt+ SysRqসাড়া দেয় না। ভক্তরা সম্পূর্ণ বিস্ফোরণে চালু হওয়ার পরে থেকেই সিপিইউ স্পষ্টতই 100% এঁকেছে।
- রিবুট করার আগে আমি যে কার্নেলটি চালাচ্ছিলাম তা এখনও আমার কাছে রয়েছে। আমি যখন গ্রাব মেনুতে এই কার্নেলটি নির্বাচন করি তখন আমি একই লকআপটি পাই। সুতরাং দেখে মনে হচ্ছে এটি পূর্ব-বিদ্যমান কার্নেল বাগ যা অন্য কোনও কিছুর দ্বারা ট্রিগার হয়ে যায় - তবে কী?
- যদি আমি স্প্ল্যাশ স্ক্রীন বন্ধ সুইচ (অপসারণ
splash
থেকেlinux
GRUB- র মধ্যে কমান্ড লাইন), আমি পরিষেবার একটি শুরুর নম্বর হবে দেখতে, তাহলে এটি লক। আমি গ্রুব-
init=/bin/sh
এlinux
কমান্ড লাইনে যুক্ত করে একটি রুট শেল পেতে পারি । আমি যোগ করেও আরও পেতে পারিsystemd.unit=basic.target systemd.shell
এটি বেশ কয়েকটি পরিষেবা শুরু করে এবং tty9 এ একটি রুট শেল চালায়।
- আমি যদি
systemctl start multi-user.target
এই রুট শেলটি থেকে চালনা করি তবে কম্পিউটার লক হয়ে যায়। সুতরাং সম্ভবত এই সমস্যাগুলির মধ্যে একটি দ্বারা ট্রিগার হয়। systemctl list-dependencies multi-user.target
কী পরিষেবা শুরু হয় তা দেখতে দৌড়ে এসেছি । আমি তালিকাভুক্ত নির্ভরতাগুলি ম্যানুয়ালি এক এক করে শুরু করেছি এবং সবকিছু ঠিকঠাক শুরু হয়েছিল।
সুতরাং এটি দেখতে একটি হার্ডওয়্যার বাগের মতো (যেহেতু এটি একটি কম্পিউটারে ঘটে তবে অন্য কম্পিউটারে নয়) যা কিছু সফ্টওয়্যার দ্বারা ট্রিগার হয়ে যায়। তবে কী সফটওয়্যার? যেহেতু কম্পিউটারটি এত শক্তভাবে লক হয়ে গেছে, আমি কোনও লগ পেতে পারি না। এমনকি আমি কোনও দরকারী কনসোল আউটপুট পেতে পারি না।
দরকারী ডিবাগিং কৌশল:
- Alt+ SysRq: ম্যাজিক সিসআরকি কী , যা আপনাকে জরুরি রিবুটের মতো জিনিসগুলি করতে দেয়। এটি খুব নিম্ন স্তরে কার্নেলটি অ্যাক্সেস করে, তাই এটি সবচেয়ে খারাপ ক্র্যাশ ব্যতীত সমস্ত ক্ষেত্রে কাজ করে। আমার ক্ষেত্রে, Alt+ SysRqসাড়া দেয় না, যা ক্র্যাশটি কত গভীর হয় তা দেখায়।
- বুট পরামিতিগুলি সংশোধন করতে, পাওয়ারটি Shiftস্যুইচ করার পরে কয়েক সেকেন্ড টিপুন এবং ধরে রাখুন । বিআইওএস কীবোর্ড শুরু করার পরে আপনাকে এটি টিপতে হবে তবে অপারেটিং সিস্টেম বুট করার আগে। এটি গ্রাব মেনুতে উপস্থিত হয়।
- গ্রুব মেনুতে, eমেনু প্রবেশের জন্য কমান্ড লাইনটি সম্পাদনা করতে টিপুন । লিনাক্স বুট পরামিতিগুলি পরিবর্তন করতে, শুরু হওয়া লাইনে নেভিগেট করুন
linux
। একটি আধুনিক উবুন্টুতে, আপনি "উবুন্টুর জন্য উন্নত বিকল্পগুলি" এর অধীনে পুরানো কার্নেলগুলি পাবেন। একবার আপনি কমান্ড লাইনে পছন্দসই পরিবর্তনগুলি Ctrlসম্পাদন xকরলে বুট করতে + টিপুন । আপনি এখানে যে কোনও পরিবর্তন কেবল এই বুটের জন্য, সেগুলি ডিস্কে সংরক্ষণ করা হয় না। linux
কমান্ড লাইনে কিছু দরকারী বিকল্প :quiet nosplash
প্রায় সমস্ত বুট বার্তা লুকায়। বুট চলাকালীন কনসোলে বার্তা পেতে তাদের সরান, যা সমস্যা নির্ণয়ের কোনও সম্ভাবনা থাকা প্রয়োজন।recovery
আপনাকে কোনও রুট শেল দেয় almost আপনাকে মূল পাসওয়ার্ড জানতে হবে। "পুনরুদ্ধার মোড" মেনু এন্ট্রি এটি ব্যবহার করে।init=/bin/sh
কোনও পরিষেবা ছাড়াই আপনাকে একটি রুট শেল দেয়। স্বাভাবিক বুট পুনরায় শুরু করতে, চালানexec init
। আপনি এই মুহুর্তে সিস্টেমেড বিকল্পগুলি পাস করতে পারেন, উদাহরণস্বরূপexec init --unit=basic.target
আরম্ভ এবং কয়েকটি পরিষেবা শুরু করার জন্য (নোট করুন যে এটি লগ ইন করার কোনও উপায় শুরু করে না, সুতরাং অন্য কনসোলে আপনার শেল চলার চেয়ে আরও ভাল হবে)। লক্ষ্য করুন যে রুট ফাইল সিস্টেমটি কেবল পঠনযোগ্য হিসাবে মাউন্ট করা হয়েছে;mount -o remount,rw /
এটি লিখতে সক্ষম হতে চালান ।systemd.unit=basic.target
পরিষেবার একটি খুব বেসিক সেট শুরু। মনে রাখবেন যে এটিতে লগ ইন করার কোনও উপায় অন্তর্ভুক্ত নয়!systemctl set-default basic.target
রুট প্রম্পটে চালিয়ে আপনি এটি ডিফল্ট করতে পারেন । মূল ডিফল্ট লক্ষ্য পুনরুদ্ধার করতে, চালানsystemctl set-default graphical.target
(বাsystemctl set-default multi-user.target
কোনও জিইউআইবিহীন সার্ভারের জন্য)।systemd.debug-shell
tty9 এ একটি রুট শেল শুরু করে।systemctl enable debug-shell
রুট প্রম্পটে চালিয়ে আপনি প্রতিটি বুটের জন্য এটি সক্ষম করতে পারেন । আপনি সমস্যাটি সমাধান করার পরে এটি অক্ষম করতে ভুলবেন নাsystemctl disable debug-shell
। টিটি 9 তে স্যুইচ করতে Alt+ টিপুন F9।- আরও দেখুন ফেডোরা systemd হল টিপস , আর্চ লিনাক্স বুট সমস্যা টিপস ।