আমি সম্প্রতি GRUB ntldr
মডিউল জুড়ে হোঁচট খেয়েছি।
স্পষ্টতই এর জন্য ব্যবহৃত জিনিসগুলির একটি হ'ল chainloader
নীচের উদাহরণের মতো উইন্ডোজের এনটি> = 6.0 সংস্করণ বুট করার বিকল্প হিসাবে। (উইন্ডোজ পার্টিশনের জন্য ভলিউম বুট রেকর্ড, আহ, দূষিত হলে খুব সহজ)
menuentry "Windows 7 (bootmgr on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
ntldr ($root)/bootmgr
}
এই বুট নির্দেশিকাটি কীভাবে ব্যবহার করা যেতে পারে সে সম্পর্কে আমি আরও কোথায় জানতে পারি? আমি এটা তালিকাভুক্ত যখন আমি লাগছিল দেখতে পাইনি HTML সংস্করণে এর গনুহ গ্রাব ম্যানুয়াল ।
Ckhan এর উত্তর
আপনাকে অনেক ধন্যবাদ! আমি বেশ সিদ্ধান্ত নিয়েছিলাম যে GRUB ntldr
কমান্ড / মডিউল সম্পর্কে আরও জানতে আমাকে উত্স কোডটি খনন করার চেষ্টা করতে হবে । তবে আপনি আমার চেয়ে অনেক ভাল কাজ করেছেন।
কোডটি লিখেছেন এমন ব্যক্তির কী নকশা নিয়ে আলোচনা করেছেন তা দেখার জন্য ইমেল সংরক্ষণাগারগুলি দেখার বিষয়টি আমার কাছে কখনও ঘটেনি। এই পদ্ধতিটি মনে হচ্ছে এটি ভবিষ্যতে খুব সহায়ক হতে পারে। এটি উল্লেখ করার জন্য ধন্যবাদ।
GRUB ntldr
সমর্থন সম্পর্কে আমার চিন্তাভাবনা
- যদিও আমি সত্যিই নিশ্চিত নই যে পার্থক্যটির অর্থ কতটা,
ntldr
এটি একটি মডিউল, কোনও আদেশ নয়। অথবা আপনি যদি চান তবে একটি গতিশীল লোড কমান্ড।
আপনার উত্স কোডের লিঙ্কটি অনুসরণ করে এবং 152 (GRUB_MOD_INIT
) এবং 159 (GRUB_MOD_FINI
) লাইনগুলি দেখে আপনি লোড করার কোডটি দেখতে পাবেন এবং ... আমি অনুমান করছি ... মডিউলটি আনলোড করুন।
GRUB স্পষ্টতই অনেকগুলি ফাংশন প্রয়োগ করে যা আপনি মডিউল হিসাবে " কমান্ডগুলি " বলে মনে করতে পারেন । আমি যে সচেতন সে সম্পর্কে ব্যবহারের মধ্যে কেবলমাত্র পার্থক্যটি হল মডিউল ব্যবহার করার আগে এটি অবশ্যই কমান্ডের সাথে বোঝা হয়েছে তা নিশ্চিত করা উচিতinsmod ntldr
।
পাশে: আমি সর্বদা ভাবতাম কেন GRUB সমর্থন করে নাreboot
। এটি কমান্ড উপস্থিত আছে সক্রিয়, কিন্তু এটি একটি মডিউল। যদিreboot
ফিরে আসেunknown command
, তবেinsmod reboot
GRUBreboot
কমান্ডটি "মনে রাখার" অনুমতি দেয় ।
একদিকে: GRUB কখন এবং কেন একটি মডিউল " আনলোড " করতে পারে , আমার এখনও কোনও ধারণা নেই। হতে পারে এটি " আবর্জনা সংগ্রহ " এর অনুরূপ কোনও কিছুর ফলাফল ?? আমি লক্ষ্য করেছি যে একবারে সিস্টেম চালিত হয়ে পুনরায় বুট করার পরেও একবারে লোড হওয়া মডিউলগুলি বজায় থাকে বলে মনে হয়। অবশ্যই, আপনি এটির উপর নির্ভর করতে পারবেন না , তবে এটি প্রায়শই অনুশীলনে কীভাবে কাজ করে তা প্রতীয়মান হয়। - এটা তোলে আকর্ষণীয় যে, তারা ভিত্তিক
ntldr
উপরchainloader
। আমি কোডটির দিকে নজর দিইনিchainloader.c
। আমার ধারণা, এটি সম্ভবত ইন্টেল 16-বিট রিয়েল মোডে একটি স্থান পরিবর্তন করা লোডও করে?
আমি আছি বরং খুশি যে তারা বাস্তবায়ন হয়নিntldr
একজন বিকল্প হিসাবেchainloader
। আমি ভ্লাদিমিরের সাথে একমত কভারগুলির নীচে মিলগুলি যাই হোক না কেন, ব্যবহারের বাক্য গঠনটি খুব আলাদা very বর্তমান পদ্ধতির কম ক্লডজি হয়। - GRUB এ এই আদেশটি যুক্ত করার জন্য উত্সাহের আপাত অভাব দেখতেও আকর্ষণীয়। স্পষ্টতই GRUB বিকাশকারীরা মনে করেছিলেন যে উইন্ডোজ পার্টিশন বুট রেকর্ডের (পিবিআর) ক্ষতি খুব সম্ভবই নয় । তবে, একটি সাধারণ পর্যাপ্ত ইনস্টলের সময় এটি কীভাবে করা যায় তা আমি স্কেচ করতে পারি।
ধরে নেওয়া শুরু করুন যে কোনও ব্যবহারকারী তাদের সিস্টেমে উইন্ডোজ ইনস্টল করেছেন। তারা এখন উইন্ডোজের " পাশাপাশি " উবুন্টু (12.04 এলটিএস) ইনস্টল করে । উবুন্টু ইনস্টলের সময় এক পর্যায়ে তারা স্পষ্টতই সিদ্ধান্ত নিতে পারেন যে তারা GRUB কোথায় ইনস্টল করতে চান। যে কারণে আমি অনুমান করা শুরু করতে পারি না, তাদের মধ্যে কয়েকটি উইন্ডোজ ইনস্টল থাকা পার্টিশনে GRUB ইনস্টল করার সিদ্ধান্ত নিয়েছে।
ইনস্টলটি সম্পূর্ণ হয় এবং তারা উবুন্টু সফলভাবে শুরু করতে পারে। যাইহোক, যখন তারা GRUB মেনুতে এন্ট্রি নির্বাচন করে উইন্ডোজ শুরু করার চেষ্টা করেন, উইন্ডোজ শুরু হয় না । পরিবর্তে GRUB দিয়ে উইন্ডোজ শুরু করার চেষ্টা করে GRUB মেনুটি পুনরায় প্রদর্শন করে?
কেন? ওয়েল, স্পষ্টতই যখন তারা উইন্ডোজ পার্টিশনের অংশে GRUB ইনস্টল করার সিদ্ধান্ত নিয়েছিলেন তখন যা ঘটেছিল তার অংশটি ছিল উইন্ডোজ পার্টিশনের জন্য পিবিআরটি GRUB এর পিবিআরের সাথে অতিরিক্ত লেখা ছিল। সুতরাংchainloader +1
একটি উইন্ডোজ বুটলোডার চেইন লোড করে না, বরং পরিবর্তে GRUB পুনরায় লোড করে।
আইএমও, ব্যবহারকারীকে সেই পরিস্থিতিতে উইন্ডোজ বুট করার অনুমতি দেওয়ার সবচেয়ে নিরাপদ দ্রুত উপায় হ'ল গ্রুবের নতুন ব্যবহারntldr
। আমি ভাবছি যদি এটি বিকাশকারীদের পক্ষে আগ্রহী হয়। আমি আশা করি তারা এই দৃশ্যটি অনুমান করেনি।
আমি ভাবছি যে উইন্ডোজগুলি ছাড়া আর কোন বুটলোডার, ntldr
এবং bootmgr
, GRUB ntldr
কমান্ড লোড করতে সক্ষম হতে পারে?