GRUB2 থেকে, একটি এলভিএম 2 লজিক্যাল ভলিউমে একটি আইএসও বুট করুন


8

tl; dr - একটি এনআইক্রিপ্ট করা lmv2 লজিক্যাল ভলিউমের মধ্যে অবস্থিত .iso ফাইল থেকে বুট করা কি সম্ভব? কিভাবে?

আমি আমার ল্যাপটপের মাধ্যমে বাস্তবের জন্য এটি করার আগে আমি ভার্চুয়ালবক্স ভিএম-এ এটি সেট করার চেষ্টা করছি। আমি নিম্নলিখিত সেট আপ আছে:

  • 4 জিপিপি পার্টিশন
    • gpt1 - 2M ef02 বায়োস বুট
    • বিভিন্ন তথ্য, আইসো ইত্যাদির জন্য জিপিটি 2 - 5 জি এনক্রিপ্ট করা নন-এলভিএম,
    • gpt3 - 5G আন-এনক্রিপ্ট করা lvm, / বুট, আইসো ইত্যাদির জন্য
    • gpt4 - অবশিষ্ট, lvm, মূল, অদলবদল, হোম ইত্যাদির জন্য dm-crypt / luks সহ এনক্রিপ্ট করা।
  • জিপিটি 2-তে আমার কাছে বর্তমান আর্চ এবং জুবুন্টু আইসোর অনুলিপি রয়েছে
  • জিপিটি 3 এ, আমার একই আইসোর একই কপি সহ একটি lvm2 lv আছে

আমার নিম্নলিখিত কাজ করছে:

  • জিপিটি 4-তে, আর্চ এবং জুবুন্টুর ইনস্টলগুলি কার্যকারিতা ইনস্টল করে (এবং অন্য কোনও লজিকাল ভলিউমে অন্য ডিস্ট্রো যুক্ত করতে চান)
  • grub2 আরচ / dev / sda থেকে ইনস্টল করা হয়েছে
  • গ্রাব 2 এর কনফিগার ফাইলটি কমান্ড ব্যবহার করে ডিস্ট্রোর গ্রাব 2 মেনু থেকে দুটি স্যুইচ করে বুট করতে পারে
  • নন- lvm জিপিটি 2 থেকে গ্রাব মেনু থেকে আইসো বুট করতে পারে

আমি যা করতে চাই তা হ'ল জিপিটি 3 এলভিএম-এর আইসো থেকে বুট করা (এবং শেষ পর্যন্ত, এমনকি অ-lvm জিপিটি 2 পার্টিশনটি মোটেই নেই)।

আমার গ্রাব এন্ট্রিটি হ'ল:

menuentry "Xubuntu ISO" {
  set isofile="/xubuntu-12.04.1-desktop-amd64.iso"
  # from non-lvm
  loopback loop (hd0,gpt2)$isofile
  # from lvm
  #loopback loop (vgboot-iso)$isofile
  linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
  initrd (loop)/casper/initrd.lz
}

দুটি লুপব্যাক লাইন একই আইসোর 2 টি আলাদা কপিগুলিকে নির্দেশ করে। আমি গ্রাব কমান্ড লাইনে যাচাই করেছি যে দুটি লুপব্যাক লাইনই কাজ করে।

নন- lvm পার্টিশনে আইসো থেকে বুট করার সময়, সবকিছু ঠিকঠাক হয়।

Lvm পার্টিশনে আইসো থেকে বুট করার সময় বুটটি শুরু হয় এবং শেষ পর্যন্ত এই ত্রুটিটি পাওয়া যায়:

(initramfs) /scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found

খিলানের প্রবেশের জন্য:

menuentry "Arch ISO" {
  set isofile="/archlinux-2012.09.07-dual.iso"
  loopback loop (hd0,gpt2)$isofile
  #loopback loop (vgboot-iso)$isofile
  linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201209 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop
  initrd (loop)/arch/boot/x86_64/archiso.img
}

জিপিটি 2 আইসো থেকে বুট করা কাজ করে তবে আমি জানি না lvm বুটের জন্য "/ dev / sda2" কী পরিবর্তন করতে হবে।


সম্পাদনা: এটি করা যেতে পারে? জন্য কোন বর্তমান লিনাক্স ডিস্ট্রো এর অফিসিয়াল .iso ফাইল? ফেডোরা? ডেবিয়ান? openSUSE নয়? সেন্টওএস?

এটা কি অসম্ভব? নাকি এমন কিছু যা আগে কেউ চেষ্টা করার কথা ভাবেনি?


এডিআইটি 2: আমার অনুগ্রহ অনেক আগেই শেষ হয়ে গেছে, এবং 9 মাস পরে, আমি ধরে নিচ্ছি যে কোনও লিনাক্স ডিস্ট্রো দিয়ে এটি সম্ভব নয়। আমি প্রশ্নটি খোলা রেখে দেব, তবে আমার সন্দেহ যে অদূর ভবিষ্যতে যে কোনও সময় কার্যকর সমাধান হবে।

উত্তর:


1

ফেডোরা 21 আইএসও ব্যবহার করে, আমি নিম্নলিখিতগুলি সফলভাবে চেষ্টা করেছি:

menuentry "Fedora 21 Live M6600" --class fedora {
    insmod part_gpt
    insmod lvm
    insmod ext2
    set vg='m6600'
    set lv='F21Live'
    set root="lvm/${vg}-${lv}"
    search --no-floppy --fs-uuid --set=root --hint=${root} 95e4eec8-c1de-4802-b821-5753de990cbe
    set isofile="/Fedora-Live-Workstation-x86_64-21-5.iso"
    echo "Using ${isofile}..."
    loopback loop $isofile
    linux (loop)/isolinux/vmlinuz0 iso-scan/filename=${isofile} root=live:CDLABEL=Fedora-Live-WS-x86_64-21-5 rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 rd.auto=1
    initrd (loop)/isolinux/initrd0.img
}

rd.auto = 1 লিনাক্সকে সমস্ত LVM গুলি লোড করতে বলবে এবং আইসো-স্ক্যান সেগুলি অনুসন্ধান করবে।


UUID লাইন দিয়ে শুরু হয় searchলজিক্যাল ভলিউম যে ISO ফাইল আছে অধিকার কেউ নেই? এটি পেতে, আপনাকে করতে হবে sudo blkid
এরিক

এটি অনেক সহজ করা যায়, ফেডোরা এবং উবুন্টুকে এলভিএম থেকে বুট করার জন্য আমার উত্তরটি দেখুন।
এরিক

1

উবুন্টুর সহজ সমাধানটি দ্বারা অনুপ্রাণিত হয়ে আমি নিম্নলিখিতটি ব্যবহার করেছি, যা ফেডোরা ২ KDE কেডি আইসো এবং উবুন্টু ১..১০ আইসো লোড করার জন্য কাজ করে।

আমি কেবল ফাইলটিতে নিম্নলিখিত লাইনগুলি যুক্ত করেছি /etc/grub.d/40_custom

menuentry "Live Fedora KDE 27" --class fedora {
  insmod part_msdos
  insmod lvm
  set iso_path="/erik/Downloads/transmission/Fedora-KDE-Live-x86_64-27/Fedora-KDE-Live-x86_64-27-1.6.iso"
  search --no-floppy --fs-uuid --set=root 6340d364-fc09-44d1-914f-b902a6394a55
  loopback loop ($root)$iso_path
  linux (loop)/isolinux/vmlinuz iso-scan/filename=${iso_path} root=live:CDLABEL=Fedora-KDE-Live-27-1-6 rootfstype=auto rd.live.image quiet
  initrd (loop)/isolinux/initrd.img
}

menuentry "Ubuntu 17.10.1" --class ubuntu {
  insmod part_msdos
  insmod lvm
  set iso_path="/erik/Downloads/transmission/ubuntu-17.10.1-desktop-amd64.iso"
  search --no-floppy --fs-uuid --set=root 6340d364-fc09-44d1-914f-b902a6394a55
  loopback loop ($root)$iso_path
  linux (loop)/casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=${iso_path} quiet splash ---
  initrd (loop)/casper/initrd.lz
}

ব্যাখ্যা

  • শুরু হওয়া লাইনটি set iso_pathপথটিকে সংজ্ঞায়িত করে, যেখানে আইসো ফাইলটি লজিক্যাল ভলিউমে পাওয়া যাবে। আমি যখন আমার সিস্টেমটি শুরু করি তখন এটি অন্তর্ভুক্ত থাকে /home/erik/Downloads/transmission/Fedora-KDE-Live-x86_64-27/Fedora-KDE-Live-x86_64-27-1.6.iso"তবে /homeএটি মাউন্টযুক্ত লজিকাল ভলিউম হয়, তাই আমি এটি ছেড়ে দিয়ে পথটি শুরু করি/erik/Downloads/…
  • যে লাইনটি দিয়ে শুরু হয় searchতার শেষে একটি অদ্ভুত বর্ণচিহ্ন (একটি তথাকথিত ইউইউডি) থাকে, যা শুরু হয় 6340। কমান্ড থেকে আমি এই নম্বর পেয়েছি

    sudo blkid
    

    যা আমাকে এবং অন্যদের সাথে নীচের লাইনটি দিয়েছে

    /dev/mapper/fedora_pluto-home: UUID="6340d364-fc09-44d1-914f-b902a6394a55" TYPE="ext4"
    
  • এর পরে, আরেকটি গুরুত্বপূর্ণ জিনিস আপনি বুট অন্যান্য ISO ফাইল প্রাপ্ত করতে ইচ্ছুক, লাইন যে দিয়ে শুরু হয় linuxএবং initrdআইসো ফাইলটিfile-roller (সংক্ষেপিত সংরক্ষণাগার সংগ্রহের জন্য গুই) বা mc(কনসোল ফাইল ম্যানেজার) দিয়ে আমি তাদের পেয়েছি ।

    • ফেডোরা এবং অনুরূপ: সেখানে আপনি ডিরেক্টরিতে যান /isolinux, যেখানে আপনি একটি ফাইল পেয়ে যাবেন isolinux.cfg। সেখানে আমি কয়েকটি লাইন পেয়েছি labelএবং তাদের নীচে নিম্নলিখিত গুরুত্বপূর্ণ লাইনগুলি পেয়েছি

      kernel vmlinuz
      append initrd=initrd.img root=live:CDLABEL=Fedora-KDE-Live-27-1-6 rd.live.image quiet
      

      যা আপনি আমার গ্রাব 2 এর শেষ দুটি লাইন পূরণ করতে ব্যবহার করবেন menuentry

    • উবুন্টু এবং অনুরূপ: সেখানে আপনি ডিরেক্টরিতে যান /boot/grub, যেখানে আপনি একটি ফাইল খুঁজে পাবেন grub.cfg। এখানে আপনি কিছু গুরুত্বপূর্ণ রেখা শুরু করবেন menuentryএবং তাদের নীচে নিম্নলিখিত গুরুত্বপূর্ণ লাইনগুলি পাবেন

      linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash ---
      initrd  /casper/initrd.lz
      

      যা আপনি কেবল অনুলিপি করতে পারেন।


0

আমি মনে করি যে বেশিরভাগ বিতরণের অফিসিয়াল আইসো ফাইলের পক্ষে এটি সম্ভব নয়।

আপনি যে ত্রুটিটি পাচ্ছেন:

 (initramfs) /scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found

বুট করার সময়, আপনি যে লাইভ সিস্টেমটি শুরু করছেন সেটি সিডি / ডিভিডি ড্রাইভ অনুসন্ধান করছে এবং কোনও খুঁজে পাচ্ছে না।

লাইভ সিডিগুলি LVM- এ তাদের উত্স আইসো অনুসন্ধানের জন্য কনফিগার করা হয়নি; এটি করার জন্য আপনি সম্ভবত চিত্রের বুট স্ক্রিপ্টগুলি সংশোধন করতে পারেন, তবে আমি মনে করি না কোনও বর্তমান ডিস্ট্রো অফিসার। আইসো ফাইল এটি করে। আপনি সম্ভবত আপনার একীভূত করতে আপনার প্রিয় ডিস্ট্রো ডিভসের সাথে যোগাযোগ করার চেষ্টা করতে পারেন?


এটা তোলে হয় সম্ভব, আমার সহজ উত্তর, যেখানে আমি ফেডোরা 27 এবং উবুন্টু 17,10 থেকে বুট দেখুন।
এরিক

0

আপনি এটি চেষ্টা করতে পারেন:

মেনুয়েট্রিটির শুরুতে এটি যুক্ত করুন:

insmod lvm

তারপরে, আপনার এলভিএম পার্টিশনটি এতে উল্লেখ করুন:

set lvmpart=lvm/<lvm_group_name>-<lvm_logical_partition_name>

সুতরাং আপনার জুবুন্টু আইএসও এন্ট্রিটি এরকম হবে:

menuentry "Xubuntu ISO" {
  insmod lvm
  set lvmpart=lvm/<lvm_group_name>-<lvm_logical_partition_name>
  set isofile="/xubuntu-12.04.1-desktop-amd64.iso"
  loopback loop $lvmpart$isofile
  linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
  initrd (loop)/casper/initrd.lz
}

প্রয়োজনীয় হিসাবে সংশোধন করুন।

এর ফলে GRUB কে lvm2 ভলিউম সনাক্ত করতে হবে এবং এতে ISO ফাইলটি পড়া সম্ভব হবে। তবে, সম্ভবত আইএসও এখনও পাওয়া যাবে না ...


আমি আপনার পরামর্শগুলি চেষ্টা করেছিলাম, কিন্তু আপনি যেমন বলেছিলেন, আইসো এখনও পাওয়া যায় নি।
স্ন্যাপশো

0

এটির জন্য কেবল একটি বিষয়:

আইএসও বুট করার সময় অবশ্যই আইসো মাউন্ট করতে হবে, সুতরাং এটি কীভাবে সন্ধান করতে হবে তা অবশ্যই জানতে হবে।

গ্রুব 2 আইএসওটিকে ইনসোড ... কমান্ডের সাহায্যে দেখতে পারে, তবে গ্রুব 2 আইএসও-তে পড়তে দেওয়া, লুপ মাউন্ট করা ইত্যাদি ছাড়া আর কিছুই করে না, তবে আইএসওর ভিতরে লিনাক্স এলভিএম / এলইউকেএস / লুপ / ​​ইত্যাদি শুরু হওয়ার সাথে সাথেই সেখানে নেই (মাউন্ট করা হয়নি), আইএসওর অভ্যন্তরে বুট স্ক্রিপ্টগুলি অবশ্যই জানতে হবে যে কীভাবে এলভিএম / এলইউকেএস / লুপটি মাউন্ট করতে হবে; সুতরাং যদি লিনাক্স এটি করতে প্রস্তুত না হয় তবে এটি থেকে বুট করা সম্ভব হবে না।

LVM, LUKS, ইত্যাদি ব্যতীত নমুনা ... একটি সাধারণ লিনাক্স লাইভসিডি আইএসও যদি বুট করার সময় .iso ফাইলে লুপ অনুসন্ধান এবং মাউন্ট করার জন্য ডিজাইন না করা হয় তবে গ্রুব 2 (.iso হিসাবে এটির সাহায্যে) এটিকে বুট করা কখনও সম্ভব হবে না a ফাইল)।

এই জাতীয় ক্ষেত্রে আপনার একটি হার্ডওয়্যার সিডি / ডিভিডি এমুলেটর প্রয়োজন (যদি সত্যিকারের হার্ডওয়্যার হয়), অথবা কেবল ভার্চুয়াল মেশিনের ভার্চুয়াল সিডি / ডিভিডি ইউনিটে .iso মাউন্ট করুন।

অন্য বিকল্পটি অবশ্যই LVM / LUKS / ইত্যাদির জন্য অনুসন্ধান এবং মাউন্ট করার জন্য কিছু স্ক্রিপ্ট বুটে অন্তর্ভুক্ত করতে এই জাতীয় আইএসও সম্পাদনা করতে পারে is

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.