https://github.com/jakeday/linux-surface/blob/master/SIGNING.md এর কার্নেল স্বাক্ষর সম্পর্কিত আরও সুনির্দিষ্ট নির্দেশনা রয়েছে (গৃহীত উত্তরের সাথে সংযুক্ত একই টিউটোরিয়াল থেকে অভিযোজিত)। নির্দেশাবলী নীচে সম্পূর্ণরূপে পুনরুত্পাদন করা হয়:
সিকিউর বুটের জন্য একটি কাস্টম কার্নেল স্বাক্ষর করা হচ্ছে
নির্দেশগুলি উবুন্টুর জন্য, তবে অন্যান্য ডিস্ট্রোদের জন্যও একই রকম কাজ করা উচিত, যদি তারা শিম এবং গ্রাবটিকে বুটলোডার হিসাবে ব্যবহার করে। যদি আপনার ডিস্ট্রো শিম ব্যবহার না করে (যেমন লিনাক্স ফাউন্ডেশন প্রিলোডার), তবে স্বাক্ষরটি সম্পন্ন করার জন্য একই ধরণের পদক্ষেপ থাকতে হবে (যেমন এলএফ প্রিলোডারের জন্য মক ইউটিলের পরিবর্তে হ্যাশটুল) বা আপনি তার পরিবর্তে ব্যবহার করতে শিম ইনস্টল করতে পারেন। শিমের জন্য উবুন্টু প্যাকেজটি বলা হয় shim-signed
, তবে দয়া করে কীভাবে এটি সঠিকভাবে ইনস্টল করবেন সে সম্পর্কে নিজেকে জানান, যাতে আপনি নিজের বুটলোডারকে গোলযোগ না করেন।
উবুন্টুতে অতি সাম্প্রতিক GRUB2 আপডেট (2.02 + dfsg1-5ubuntu1) যেহেতু সিকিউর বুট সক্ষম হওয়া অবধি GRUB2 স্বাক্ষরবিহীন কার্নেলগুলি লোড করে না। উবুন্টু 18.04 এর ব্যবহারকারীদের গ্রু-এফআই প্যাকেজ আপগ্রেড করার সময় অবহিত করা হবে যে এই কার্নেলটি স্বাক্ষরিত হয়নি এবং আপগ্রেডটি বাতিল করতে হবে।
এই সমস্যাটি সমাধান করার জন্য আপনার কাছে তিনটি বিকল্প রয়েছে:
- আপনি নিজেই কার্নেলটিতে স্বাক্ষর করুন।
- আপনি আপনার ডিস্ট্রোর একটি স্বাক্ষরিত জেনেরিক কার্নেল ব্যবহার করেন।
- আপনি নিরাপদ বুট অক্ষম করুন।
যেহেতু বিকল্প দুটি এবং তিনটি সত্যই কার্যকর নয়, এই কার্নেলটি নিজেই স্বাক্ষর করার পদক্ষেপ are
উবুন্টু ব্লগ থেকে গৃহীত নির্দেশাবলী । অনুসরণ করার আগে, দয়া করে আপনার / বুট / ইএফআই ডিরেক্টরিটি ব্যাকআপ করুন, যাতে আপনি সবকিছু পুনরুদ্ধার করতে পারেন। আপনার নিজের ঝুঁকিতে এই পদক্ষেপগুলি অনুসরণ করুন।
- স্বাক্ষর কী তৈরি করতে কনফিগারেশন তৈরি করুন, mokconfig.cnf হিসাবে সংরক্ষণ করুন:
# This definition stops the following lines failing if HOME isn't
# defined.
HOME = .
RANDFILE = $ENV::HOME/.rnd
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = v3
string_mask = utf8only
prompt = no
[ req_distinguished_name ]
countryName = <YOURcountrycode>
stateOrProvinceName = <YOURstate>
localityName = <YOURcity>
0.organizationName = <YOURorganization>
commonName = Secure Boot Signing Key
emailAddress = <YOURemail>
[ v3 ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical,CA:FALSE
extendedKeyUsage = codeSigning,1.3.6.1.4.1.311.10.3.6
nsComment = "OpenSSL Generated Certificate"
আপনার বিশদ সাথে সমস্ত অংশ সামঞ্জস্য করুন।
- কার্নেলটিতে স্বাক্ষর করার জন্য সরকারী এবং ব্যক্তিগত কী তৈরি করুন:
openssl req -config ./mokconfig.cnf \
-new -x509 -newkey rsa:2048 \
-nodes -days 36500 -outform DER \
-keyout "MOK.priv" \
-out "MOK.der"
- কীটিও পিইএম ফর্ম্যাটে রূপান্তর করুন (মকুটিলকে ডিইআর লাগবে, এসবাইনের জন্য পিইএম প্রয়োজন):
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
- আপনার শিম ইনস্টলেশনের কীটি নথিভুক্ত করুন:
sudo mokutil --import MOK.der
আপনাকে একটি পাসওয়ার্ড জিজ্ঞাসা করা হবে, আপনি কেবল পরবর্তী পদক্ষেপে আপনার মূল নির্বাচনটি নিশ্চিত করার জন্য এটি ব্যবহার করবেন, সুতরাং যে কোনও চয়ন করুন।
আপনার সিস্টেম পুনরায় চালু করুন। আপনি এম কেকে ম্যানেজার নামে একটি সরঞ্জামের নীল পর্দার মুখোমুখি হবেন। "এনওরল এমওকে" নির্বাচন করুন এবং তারপরে "কী দেখুন" নির্বাচন করুন। এটি নিশ্চিত করুন যে আপনি দ্বিতীয় পদক্ষেপে তৈরি করেছেন এটিই আপনার কী wards
আপনার কী এর মাধ্যমে নিবন্ধভুক্ত রয়েছে তা যাচাই করুন:
sudo mokutil --list-enrolled
- আপনার ইনস্টল করা কার্নেলটি স্বাক্ষর করুন (এটি / boot / vmlinuz- এ থাকা উচিত [[কার্নেল-সংস্করণ] -সুরফেস-লিনাক্স-পৃষ্ঠে)):
sudo sbsign --key MOK.priv --cert MOK.pem /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface --output /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface.signed
- স্বাক্ষরবিহীন কার্নেলের ইআরগ্রামটি অনুলিপি করুন, সুতরাং স্বাক্ষরযুক্তটির জন্য আমাদের কাছে একটি থ্রিমও রয়েছে।
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
- আপনার গ্রাব-কনফিগার আপডেট করুন
sudo update-grub
- আপনার সিস্টেমটি পুনরায় বুট করুন এবং স্বাক্ষরিত কর্নেলটি নির্বাচন করুন। যদি বুটিংটি কাজ করে, আপনি স্বাক্ষরবিহীন কার্নেলটি মুছে ফেলতে পারেন:
sudo mv /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo mv /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo update-grub
এখন আপনার সিস্টেমটি স্বাক্ষরিত কার্নেলের অধীনে চলতে হবে এবং GRUB2 আপগ্রেড করা আবার কাজ করবে। আপনি যদি কাস্টম কার্নেলটি আপগ্রেড করতে চান তবে আপনি উপরের পদক্ষেপটি সপ্তম ধাপটি থেকে আবার নতুন সংস্করণে স্বাক্ষর করতে পারেন। এমওকি-কিগুলি (এমওকে.ডি.আর., মো.ক.পি.এম, মো.কে.প্রাইভ) ব্যাকআপ করুন।