বেশ কয়েক মাস আগে, আমি অবশেষে আমার Lenovo G50 ল্যাপটপে শুধুমাত্র-পঠন গল্পটি সমাধান করতে সক্ষম হয়েছি। আপনি মূল সমস্যা এবং তারপরে আমার প্রথম সমাধানের প্রচেষ্টা সম্পর্কে পড়তে পারেন, এবং তারপরে অবশেষে, উবুন্টু 17.10 ড্রাইভারের ব্যর্থতার কারণে সমস্যাটি সত্যই জনপ্রিয় হয়ে উঠলে, আসল সমাধানটি একটি কার্নেল আপডেটের আকারে এসেছিল, এবং তারপরে, আমার কাছে ছিল আমার UEFI আবার সঠিকভাবে কাজ করছে। মজার বিষয় হল, এটি একটি অনেক বড় সমস্যা, এবং এটি উবুন্টুর মধ্যে সীমাবদ্ধ নয়, তবে এটি দীর্ঘ সময়ের জন্য আকস্মিকভাবে উপেক্ষা করা হয়েছিল৷
এখন, যখন আমি ফিক্স তৈরির জন্য অপেক্ষা করছিলাম - সেখানে কখনও একটি হতে চলেছে কিনা তা না জেনে, আমি Lenovo মেশিনে বুট করার জন্য নতুন অপারেটিং সিস্টেমগুলি পাওয়ার উপায়গুলি খুঁজে বের করার চেষ্টা করেছি। আমি যেমন উল্লেখ করেছি, ভার্চুয়ালবক্সের মাধ্যমে কাঁচা ডিস্ক অ্যাক্সেস একটি। আরেকটি পদ্ধতি, কিছুটা কম ঝুঁকিপূর্ণ কিন্তু কিছুটা কম কার্যকরী হল:GRUB2 ISOBoot। আমরা এখন এটি নিয়ে আলোচনা করব, কারণ এমন একটি দিন আসতে পারে যখন আপনি BIOS/UEFI NVRAM-এর একমাত্র পঠনযোগ্য সমস্যার মুখোমুখি হতে পারেন, এবং এটিকে ঘিরে কাজ করার জন্য একটি উপায় প্রয়োজন, এবং কোনও কার্নেল আপডেট এবং এই জাতীয় উপলব্ধ নেই। চলুন এগিয়ে যাই।
বুট আপ করুন
ISO ফাইলগুলি থেকে সরাসরি বুট করার ক্ষমতা হল GRUB2 বুটলোডারের একটি নতুন বৈশিষ্ট্য, এবং আমরা এখন ল্যাপটপে অপসারণযোগ্য মিডিয়া ব্যবহার করতে পারি না তা খুঁজে পেতে এটিকে কাজে লাগাব। এই ক্ষমতার ব্যবহারের ডকুমেন্টেশন কিছুটা দুষ্প্রাপ্য, এবং বরাবরের মতো এবং বরং সঠিকভাবে, উবুন্টুর প্রতি পক্ষপাতদুষ্ট, যা বোঝায়, কারণ এটি সেখানে সবচেয়ে প্রচলিত লিনাক্স বিতরণ। এখনও।
যাইহোক, প্রথমে, বুটলোডার এবং এটি কিভাবে কাজ করে তার সাথে পরিচিত হতে অনুগ্রহ করে আমার GRUB2 টিউটোরিয়াল পড়ুন। সেই জ্ঞান ছাড়া, আপনি এই নিবন্ধে লেখা পরামর্শগুলি বাস্তবায়ন করতে সক্ষম হবেন না৷
৷ম্যানুয়াল মেনু এন্ট্রি
আমি স্বয়ংক্রিয় বা সহায়ক সরঞ্জামগুলি ব্যবহার করার আগে জিনিসগুলি পরীক্ষা করতে বিশ্বাস করি, কারণ এইভাবে, আপনি কী ঘটছে তা বুঝতে সক্ষম হবেন। দৃশ্যের অন্তরালে. মূল ধারণাটি নিম্নরূপ - আপনাকে একটি কাস্টম GRUB2 স্ক্রিপ্ট তৈরি করতে হবে - অথবা আপনি একটি প্রাক-বিদ্যমান টেমপ্লেট ব্যবহার করতে পারেন, ডিস্কের যেকোনো একটি পার্টিশনে প্রাসঙ্গিক ISO ফাইলে নির্দেশ করতে পারেন, একটি লুপব্যাক ডিভাইস হিসাবে ISO মাউন্ট করতে পারেন, এবং তারপর উপলব্ধ কার্নেল এবং initrd/initramfs ফাইল বুট করুন।
আমরা 40_custom স্ক্রিপ্ট ব্যবহার করব, যা /etc/grub.d এর অধীনে উপলব্ধ। ডিফল্টরূপে, ফাইলটি খালি থাকে এবং শুধুমাত্র নিম্নলিখিতগুলি তালিকাভুক্ত করে:
#!/bin/sh
exec tail -n +3 $0
# এই ফাইলটি কাস্টম মেনু এন্ট্রি যোগ করার একটি সহজ উপায় প্রদান করে। আপনি এই মন্তব্যের পরে যোগ করতে চান এমন
#টি মেনু এন্ট্রি টাইপ করুন।
# উপরের 'exec tail' লাইনটি পরিবর্তন না করার বিষয়ে সতর্ক থাকুন।
আসুন এখন একটি এন্ট্রি তৈরি করুন এবং দেখুন কী দেয়:
#!/bin/sh
exec tail -n +3 $0
# এই ফাইলটি কাস্টম মেনু এন্ট্রি যোগ করার একটি সহজ উপায় প্রদান করে।
# এই
# মন্তব্যের পরে আপনি যে মেনু এন্ট্রি যোগ করতে চান তা শুধু টাইপ করুন। উপরে 'exec টেল' লাইন পরিবর্তন না করার জন্য সতর্ক থাকুন।
মেনু এন্ট্রি "
সেট রুট=(
সেট isoname="
সেট isofile="
লুপব্যাক লুপ $isofile
লিনাক্স (লুপ)
initrd (লুপ)
}
আমাদের এখানে কি আছে?
আসুন আমাদের স্ক্রিপ্টটি একবার দেখে নেওয়া যাক, আমরা করব?
- প্রথম লাইন - শিরোনাম - নির্দিষ্ট বুট এন্ট্রির শিরোনাম নির্দিষ্ট করে৷ ৷
- এরপর, আমরা রুট সেট করি। এটি GRUB-কে বলে দেবে কোন পার্টিশনে স্ক্রিপ্টে পরে তালিকাভুক্ত নির্দিষ্ট পাথগুলি সন্ধান করতে হবে। মনে রাখবেন যে GRUB2 GRUB লিগ্যাসির থেকে একটু ভিন্ন স্বরলিপি ব্যবহার করে এবং পার্টিশন সংখ্যা 1 দিয়ে শুরু হয়, 0 নয়।
- তৃতীয় নির্দেশিকা - আইসোনাম - ডাউনলোড করা ISO ফাইলের নাম উল্লেখ করে৷
- চতুর্থ লাইনটি ISO ফাইলের অবস্থানের সম্পূর্ণ পথ নির্দেশ করে। আমরা ISO ফাইলের নাম এবং .iso প্রত্যয় ব্যবহার করে লাইনটি একত্রিত করি।
- পরবর্তী নির্দেশ বুটলোডারকে একটি লুপব্যাক ডিভাইস হিসাবে ISO ফাইল মাউন্ট করতে বলে৷
- এখন, আমরা কার্নেল লোড করি - লিনাক্স এন্ট্রি UEFI সিস্টেমে linuxefi পড়তে হবে। তারপরে, আমাদের কাছে আরও কয়েকটি বাধ্যতামূলক বুট বিকল্প রয়েছে, যা (দুঃখজনকভাবে) একটি বিতরণ থেকে অন্য বিতরণে আলাদা হবে। সবশেষে, আমরা initrd এর সাথে একই কাজ করি (UEFI সিস্টেমের জন্য আবার initrdefi)।
সমস্যা ...
এই পদ্ধতির সমস্যা হল যে সেখানে প্রায় প্রতিটি ডিস্ট্রো লাইভ সেশনে বুট করার জন্য নিজস্ব পদ্ধতি ব্যবহার করে, ওভারলে ফাইল সিস্টেম, বুট বিকল্প এবং আরও অনেক কিছু সহ। কোন সাধারণ এন্ট্রি বুট করার একটি একক এবং সহজ উপায় নেই। আবার, আপনি যদি উপলব্ধ উদাহরণগুলি দেখেন, আপনি এই স্থানটিতে বিশাল পরিমাণ পার্থক্য এবং খণ্ডিতকরণ দেখতে পাবেন - লিনাক্স ডেস্কটপের অন্যান্য দিকগুলির মতো৷
ফেডোরা পরীক্ষা
আমি ফেডোরার সাথে পরীক্ষা করার সিদ্ধান্ত নিয়েছি, কারণ উবুন্টু উদাহরণটি সত্যিই তুচ্ছ। অনলাইনে পড়ার সময়, আমি F18-F27 পরিবার জুড়ে অন্তত এক ডজন রেফারেন্স পেয়েছি, যার প্রত্যেকটিই একটু আলাদাভাবে তালিকাভুক্ত। সাধারণ কনভেনশন কমবেশিতে সংকুচিত হয়:
মেনু এন্ট্রি "ফেডোরা লাইভ" --ক্লাস ফেডোরা {
সেট রুট='hd0,msdos8'
সেট isofile="/home/roger/Downloads/
Fedora-Workstation-Live-x86_64-27 -1.6.iso"
লুপব্যাক লুপ $isofile
linux (loop)/isolinux/vmlinuz0 iso-scan/filename=${isofile}
root=live:CDLABEL=Fedora-Live rootfstype=auto ro rd.live.image
শান্ত rhgb rd.luks=0 rd.md=0 rd.dm=0
initrd (loop)/isolinux/initrd0.img
}
আমি সর্বশেষ ফেডোরা 27 উদাহরণ এবং অষ্টম পার্টিশনে (sda8) অবস্থিত ISO ফাইল সহ একটি ডুয়াল-বুট সিস্টেম ব্যবহার করেছি। একবার আপনি এটি কাস্টম স্ক্রিপ্টে যোগ করলে, পরবর্তী ধাপ হল GRUB মেনু আপডেট করা। তারপর চেক করুন এবং যাচাই করুন যে তৈরি করা GRUB কনফিগারেশন ফাইলে আপনার এন্ট্রি রয়েছে৷
এটি পরীক্ষা করা কাজ করেনি - বা অন্য কোনো ডজন ভিন্নতাও নেই। আমি ডিস্ক এবং পার্টিশন স্বরলিপির পরিবর্তে UUID ব্যবহার করেছি, বিভিন্ন মডিউল সন্নিবেশ করার চেষ্টা করেছি, এবং এর মধ্যে কোনটিই একটি নন-উবুন্টু আইএসও ফাইলের সহজ এবং নির্বিঘ্ন বুট করার অনুমতি দেয়নি।
অ-ম্যানুয়াল পদ্ধতি:grml
একটি আরও সহজ পদ্ধতি হল একটি সহায়ক টুল ব্যবহার করা যা স্বয়ংক্রিয়ভাবে /boot/grml-এর অধীনে পাওয়া যেকোনো ISO ফাইলের জন্য একটি এন্ট্রি যোগ করবে। প্রোগ্রামটি ইনস্টল করুন - sudo apt-get install grml, প্রাসঙ্গিক ISO ফাইলগুলি অনুলিপি করুন এবং তারপর GRUB আপডেট কমান্ড চালান৷
এই পদ্ধতির সাথে, আমার মিশ্র ফলাফল ছিল - কিছু বিতরণ বুট হবে, অন্যরা হবে না। জেনারেট করা grub.cfg ফাইলের দিকে তাকালে আবার, আউটপুটটি কেমন হওয়া উচিত সে সম্পর্কে একটি সাধারণ, সাধারণ কনভেনশন বলে মনে হয় না। তর্কাতীতভাবে, ভার্চুয়ালবক্সে কাঁচা ডিস্ক অ্যাক্সেস ব্যবহার করার চেয়ে নিরাপদ, যেমনটি আমি আপনাকে এই বিষয়ে আমার প্রথম নিবন্ধে দেখিয়েছি, ISOBoot পদ্ধতিটি সব ক্ষেত্রেই কাজ করার সম্ভাবনা কম৷
অন্যান্য সমাধান
GRUB2 ISOBoot-এর সাথে কঠোরভাবে সম্পর্কিত নয়, তবে কিছু অন্যান্য সরঞ্জাম রয়েছে যা আপনি বিবেচনা করতে চাইতে পারেন। এই টুলগুলির মধ্যে কিছু আমার পাঠকদের কাছ থেকে পরামর্শ, এবং আমি তাদের প্রকৃত সাহায্য এবং অবদানের জন্য ধন্যবাদ জানাতে চাই, কারণ তারা আমার ল্যাপটপ ঠিক করতে আমাকে সাহায্য করার চেষ্টা করেছে৷
লেনোভোর অফিসিয়াল সুপারিশ হল মাদারবোর্ড প্রতিস্থাপন করা। এটি কাজ করবে, এবং আপনি এটি চেষ্টা করতে চাইতে পারেন - তবে কেবলমাত্র সমস্ত সফ্টওয়্যার-ভিত্তিক সমাধানগুলি হ্রাস করার পরে। তারা সস্তা, এবং আপনি সবসময় হার্ডওয়্যার ফিরে পড়তে পারেন. এবং আমরা যেমন দেখেছি, একটি কার্নেল আপডেট সাহায্য করেছে, তাই মাদারবোর্ড প্রতিস্থাপনের জন্য এটি এখনও অর্থের অপচয় হবে (এটি সর্বদা একটি বিকল্প, এবং তাই শেষ হওয়া উচিত)।
আরেকটি (কিছুটা উচ্চ বিশেষজ্ঞ) হার্ডওয়্যার পরামর্শ হল একটি ফ্ল্যাশরম টুল দ্বারা সমর্থিত একটি USB SPI প্রোগ্রামার ব্যবহার করে একটি পরিষ্কার UEFI ইমেজ সরাসরি ল্যাপটপের চিপে ফ্ল্যাশ করার চেষ্টা করা। আমি এটি চেষ্টা করিনি, তবে এটি এমন কিছু যা আপনি বিবেচনা করতে চাইতে পারেন, যদি আপনি অতি-সাহসী এবং বুদ্ধিমান হন।
এই গল্পের একটি উপ-শিক্ষা হল অপেক্ষা করা ভাল। আমার ক্ষেত্রে, আমি ধৈর্য ধরে প্রায় চার মাস অপেক্ষা করেছি। আমি হার্ডওয়্যার মেরামত বা একটি নতুন ল্যাপটপ কেনার জন্য অর্থ ব্যয় করতে তাড়াহুড়ো করিনি। যাইহোক, আমি বুঝতে পারি যে কিছু পরিস্থিতিতে, আপনি একটি পছন্দ ছাড়া হতে পারে.অন্যান্য বিকল্পগুলি, অগ্রাধিকারের অবরোহী ক্রম অনুসারে হওয়া উচিত:1) BIOS/UEFI ফার্মওয়্যার ফ্ল্যাশ উপলব্ধ থাকলে 2) rEFInd বুট ম্যানেজার ব্যবহার, GRUB-এর প্রতিস্থাপন হিসাবে; অল্প কিছু হ্যাকিংয়ের সাথে (এমন কিছু যা আমরা একদিন আরও বিস্তারিতভাবে অন্বেষণ করতে পারি), আপনি সফলভাবে শুধুমাত্র পঠনযোগ্য BIOS/UEFI 3 দ্বারা আরোপিত বিদ্যমান সীমাবদ্ধতাগুলিকে সফলভাবে কাজ করতে সক্ষম হবেন) EasyUEFI 4 এর মতো আরও কয়েকটি UEFI ব্যবস্থাপনা প্রোগ্রাম) একটি প্রার্থনা বই, যা বেশিরভাগ গীকদের জন্য একটি পাইথন ম্যানুয়াল হবে৷
৷আসুন দ্বিতীয় থেকে শেষ বিন্দুটি আরও বিশদে আলোচনা করা যাক। এটি একটি উইন্ডোজ-ভিত্তিক প্রোগ্রাম, এবং এটি EFI বুটলোডার পরিচালনা করতে ব্যবহার করা যেতে পারে, যার মধ্যে এন্ট্রিগুলি সক্ষম/অক্ষম করা, তালিকাভুক্ত এন্ট্রিগুলির ক্রম পরিবর্তন করা এবং অক্ষম আইটেমগুলি পরিষ্কার করা সহ।
This cleanup command is what might help you get your NVRAM to cooperate (maybe). In the main menu, try to disable one of the entries, or if you already have some in the disabled state, then you can try the cleanup option. In my case, this did not work. The tool threw a system API error, which is probably not that different from the interrupted system call issue we saw in my initial report on the problem. Don't get your hopes too high, but it might work for you better than it did for me.
I would like to thank aigle, Ivan, L., Neal, Marcin, Richard, Nik, Floris, zloster, Georg, and Matthew for their suggestions, ideas, encouragement through the adventure. Since the problem has been resolved, I won't be able to continue any additional tools or ways to resolve the issue, and with what you have above, plus the kernel update, plus the VirtualBox raw disk access, you should be okay.
উপসংহার
When you're facing an odd hardware situation, like we have here, there are no guarantees. In the first workaround article, I mentioned VirtualBox and raw disk access. This is bound to work, but the risks are quite high. A less intrusive method is to try to boot from ISO files using GRUB2, our topic today. My testing shows this is a much less successful and effective way, but it also carries less risk of damaging the data on the hard disk. Lastly, you could try some other tools, and we will explore some of those more in the future.
For the time being, my suggestion is - if the kernel update does not work for you AND you do not really have to change the current setup AND it works for you well - let it be. For me, this was the matter of using eight operating systems, more than plenty for a test box, and I could still perform in-vivo upgrades, so it was all right waiting for the kernel fix. If you do want to try to be able to use additional operating systems without making any hardware repairs, then you have several workaround solutions and semi-solutions to consider. I wish I could give you a 100% foolproof 100% applicable recipe, but that is never the case in a war between software and hardware. Take care.
চিয়ার্স।