অধ্যবসায়ের সাথে UEFI + BIOS বুটেবল লাইভ ডেবিয়ান প্রসারিত amd64


20

আমি বর্তমানে এই বিষয়ে সমস্ত তথ্য আমার স্বাদ জন্য অপর্যাপ্ত। এটি পুরানো, বিভ্রান্তিকর বা এমনকি ভুল, অতিরিক্ত জটিল বলে মনে হচ্ছে বা এই নির্দিষ্ট প্রশ্নটি coveringেকে রাখেনি।

গোল:

  • বুটযোগ্য ইউএসবি ড্রাইভ (উভয়ইইএফআই এবং লেগ্যাসি বিআইওএস সমর্থিত)
  • (ভিত্তিতে) লাইভ ডেবিয়ান 9 (প্রসারিত)
  • অধ্যবসায় (ডিফল্টরূপে এবং উভয়ই ইউএফআই এবং লেগ্যাসি বিআইওএসের জন্য)
  • ডিফল্ট হিসাবে জার্মান কীবোর্ড বিন্যাস
  • অন্যান্য জিএনইউ / লিনাক্স সিস্টেমগুলির সমস্যার সমাধানের জন্য উপযুক্ত

কারণ:

  • প্রতিটি ব্যবহারে কীবোর্ড লেআউট সেটআপ করা আসল মাথাব্যথা
  • ক্রিপ্টসেটআপ এবং ইফিবুটমগ্রার ডিফল্ট ডেবিয়ান লাইভ চিত্রগুলিতে অনুপস্থিত
  • জিনোম-টার্মিনালটিতে এই ডিফল্টরকম বিরক্তিকর সাদা ব্যাকগ্রাউন্ড রয়েছে

কোনও সমাধান নেই:

  • (পুনরায়) কাস্টম ডেবিয়ান লাইভ চিত্র তৈরি করা (এটি ক্লান্তিকর বলে মনে হচ্ছে, যদিও আমি এটি এখনও চেষ্টা করি নি)
  • আনটবুটিন (ডেবিয়ান স্ট্র্যাচ শুরু করার সময় একটি অজানা পাসওয়ার্ড চেয়েছে এবং আমি মনে করি এটি যেভাবেই ইউইএফআই সমর্থন করে না)
  • কিছু বিদেশী স্বয়ংক্রিয় প্রক্রিয়া যেখানে আমি দেখছি না কি হচ্ছে

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

উত্তর:


30

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

এখানে বর্ণিত পদক্ষেপগুলি একটি ডেবিয়ান প্রসারিত লাইভ চিত্র তৈরি করতে দেবিয়ান স্ট্রেচ এবং বাস্টারে কাজ করার জন্য পরীক্ষা করা হয়েছিল।

অনেকগুলি পদক্ষেপ জড়িত রয়েছে তবে মনে হয় এই পদ্ধতিটি এখনও বেশ দক্ষ।

দাবি অস্বীকার: আপনি লক্ষ্য ইউএসবি ড্রাইভে ডেটা হারাবেন এবং নীচের কমান্ডগুলিকে গুছিয়ে নিলে আপনি পরে খুব দুঃখিত অনুভব করতে পারেন। আমি আপনার কর্মের জন্য দায়ী না।

ভাজ্ঞবান অনুভব করছি

আপনি যদি আজকে বিশেষভাবে ভাগ্যবান বোধ করেন তবে আপনি নিজের জন্য প্রক্রিয়াটি স্বয়ংক্রিয় করে নেওয়ার জন্য একটি বাশ স্ক্রিপ্ট চেষ্টা করতে পারেন । এটিকে প্রথম প্যারামিটার হিসাবে আপনার আইএসও চিত্রের পথ এবং দ্বিতীয় হিসাবে ইউএসবি ড্রাইভ ব্লক ডিভাইসের নাম দিন। মনে রাখবেন যে এই স্ক্রিপ্টটি অত্যন্ত বিপজ্জনক এবং আপনার প্রথমে এটি পড়া এবং বোঝার ছাড়াই এটি সম্পাদন করা উচিত নয়।

টি এল; ডিআর

ডেবিয়ান লাইভ আইএসও চিত্র পান, তারপরে নিম্নলিখিতটি করুন:

umount /dev/sdX*
parted /dev/sdX --script mktable gpt
parted /dev/sdX --script mkpart EFI fat16 1MiB 10MiB
parted /dev/sdX --script mkpart live fat16 10MiB 3GiB
parted /dev/sdX --script mkpart persistence ext4 3GiB 100%
parted /dev/sdX --script set 1 msftdata on
parted /dev/sdX --script set 2 legacy_boot on
parted /dev/sdX --script set 2 msftdata on

mkfs.vfat -n EFI /dev/sdX1
mkfs.vfat -n LIVE /dev/sdX2
mkfs.ext4 -F -L persistence /dev/sdX3

mkdir /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso
mount /dev/sdX1 /tmp/usb-efi
mount /dev/sdX2 /tmp/usb-live
mount /dev/sdX3 /tmp/usb-persistence
mount -oro live.iso /tmp/live-iso

cp -ar /tmp/live-iso/* /tmp/usb-live

echo "/ union" > /tmp/usb-persistence/persistence.conf

grub-install --no-uefi-secure-boot --removable --target=x86_64-efi --boot-directory=/tmp/usb-live/boot/ --efi-directory=/tmp/usb-efi /dev/sdX

dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr/gptmbr.bin of=/dev/sdX
syslinux --install /dev/sdX2

mv /tmp/usb-live/isolinux /tmp/usb-live/syslinux
mv /tmp/usb-live/syslinux/isolinux.bin /tmp/usb-live/syslinux/syslinux.bin
mv /tmp/usb-live/syslinux/isolinux.cfg /tmp/usb-live/syslinux/syslinux.cfg

sed --in-place 's#isolinux/splash#syslinux/splash#' /tmp/usb-live/boot/grub/grub.cfg

sed --in-place '0,/boot=live/{s/\(boot=live .*\)$/\1 persistence/}' /tmp/usb-live/boot/grub/grub.cfg /tmp/usb-live/syslinux/menu.cfg

sed --in-place '0,/boot=live/{s/\(boot=live .*\)$/\1 keyboard-layouts=de locales=en_US.UTF-8,de_DE.UTF-8/}' /tmp/usb-live/boot/grub/grub.cfg /tmp/usb-live/syslinux/menu.cfg

umount /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso
rmdir /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso

বিস্তারিত এবং কিছু ব্যাখ্যা সহ

আপনাকে নিম্নোক্ত কমান্ডগুলির বেশিরভাগ উন্নত সুবিধাগুলি সহ কার্যকর করতে হবে, যেমন, sudoবেশিরভাগ জিএনইউ / লিনাক্স সিস্টেম ব্যবহার করে।

ডাউনলোড

আপনার পছন্দসই উইন্ডো ম্যানেজারের সাথে একটি ডেবিয়ান লাইভ আইএসও চিত্র ডাউনলোড করুন:

https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/

আমরা ডাউনলোড করা আইএসও চিত্রটি কেবল "live.iso" হিসাবে উল্লেখ করব।

টার্গেট ড্রাইভ নির্ধারণ করুন

আপনার ইউএসবি ড্রাইভটি ব্যবহার করে এমন ডিভাইসটি সন্ধান করুন lsblk। আমরা এটি কল করব /dev/sdX

আনমাউন্ট

ব্যবহার করে আপনার ড্রাইভে বিদ্যমান পার্টিশন আনমাউন্ট করুন umount /dev/sdX*

পার্টিশন তৈরি করুন

ইউএসএফআই পিসিগুলির ইউএসবি ড্রাইভ থেকে বুট করার জন্য আমাদের একটি EFI বুট পার্টিশন প্রয়োজন। তারপরে আমাদের আসল লাইভ আইএসও ফাইল সিস্টেমের চিত্রের বিষয়বস্তু ধরে রাখতে পর্যাপ্ত পরিমাণে বিভাজন দরকার। এই বিভাজনের অবশ্যই legacy_bootপতাকা সেট থাকতে হবে। তারপরে আমরা USB ড্রাইভের অবশিষ্ট সমস্ত স্থান ব্যবহার করে অধ্যবসায় পার্টিশন যুক্ত করি। আপনি যে কোনও জিপিটি সক্ষম পার্টিশন সরঞ্জাম ( legacy_bootপতাকাটি মনে রাখবেন ) দিয়ে এটি করতে পারেন। এখানে ব্যবহার করে একটি উদাহরণ দেওয়া হয়েছে parted:

parted /dev/sdX --script mktable gpt
parted /dev/sdX --script mkpart EFI fat16 1MiB 10MiB
parted /dev/sdX --script mkpart live fat16 10MiB 3GiB
parted /dev/sdX --script mkpart persistence ext4 3GiB 100%
parted /dev/sdX --script set 1 msftdata on
parted /dev/sdX --script set 2 legacy_boot on
parted /dev/sdX --script set 2 msftdata on

এটি একটি জিপিটি পার্টিশন টেবিল এবং একটি প্রতিরক্ষামূলক এমবিআর পার্টিশন টেবিল তৈরি করে।

ফাইল সিস্টেমগুলি তৈরি করুন

আমরা ইএফআই এবং লাইভ পার্টিশনের উপর ফ্যাট চাই এবং আমরা ext4দৃ the়তা পার্টিশনে চাই এবং আমাদের দৃ the়তা persistenceবৈশিষ্ট্যটির কাজ করার জন্য লেবেল প্রয়োজন ।

mkfs.vfat -n EFI /dev/sdX1
mkfs.vfat -n LIVE /dev/sdX2
mkfs.ext4 -F -L persistence /dev/sdX3

সম্পদ মাউন্ট

আমাদের সোর্স আইএসও মাউন্ট করতে হবে এবং অস্থায়ী মাউন্ট পয়েন্টগুলিতে পার্টিশনগুলি টার্গেট করতে হবে।

mkdir /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso
mount /dev/sdX1 /tmp/usb-efi
mount /dev/sdX2 /tmp/usb-live
mount /dev/sdX3 /tmp/usb-persistence
mount -oro live.iso /tmp/live-iso

লাইভ সিস্টেম ইনস্টল করুন

লাইভ পার্টিশনে লাইভ আইএসও ফাইল সিস্টেমের সামগ্রীটি অনুলিপি করুন।

cp -ar /tmp/live-iso/* /tmp/usb-live

persistence.conf

প্রয়োজনীয় কনফিগারেশন ফাইল সহ অধ্যবসায়ের ফাইল সিস্টেম প্রস্তুত করুন। অধ্যবসায় বৈশিষ্ট্য এই ফাইলটি ছাড়া কাজ করবে না।

echo "/ union" > /tmp/usb-persistence/persistence.conf

ইউইএফআই সমর্থন জন্য গ্রাব

ইউইএফআই বুটিং সহায়তার জন্য গ্রুব 2 ইনস্টল করুন (এটিতে grub-efi-amd64-binডিবিয়ান প্যাকেজ দরকার )। আমরা UEFI সুরক্ষিত বুটটি ব্যবহার না করার grub-installজন্য জোর করি , যা দৃশ্যত বিকল্পটির সাথে কাজ করে না ।--removable

grub-install --no-uefi-secure-boot --removable --target=x86_64-efi --boot-directory=/tmp/usb-live/boot/ --efi-directory=/tmp/usb-efi /dev/sdX

লিগ্যাসি বিআইওএস সমর্থনের জন্য সিসলিনাক্স

gptmbr.binড্রাইভে সিসলিনাক্স বুটলোডার ইনস্টল করুন (সিসলিনাক্স ডাউনলোড করুন বা প্যাকেজ ইনস্টল করুন syslinux-common)। তারপরে লাইভ পার্টিশনে সিসলিনাক্স ইনস্টল করুন।

dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr/gptmbr.bin of=/dev/sdX
syslinux --install /dev/sdX2

ইসলিনাক্স ফিক্সআপ

সিসলিনাক্সের সাথে কাজ করতে মূল লাইভ আইএসওর আইসোলিনাক্স কনফিগারেশন পুনরায় ব্যবহার করুন।

mv /tmp/usb-live/isolinux /tmp/usb-live/syslinux
mv /tmp/usb-live/syslinux/isolinux.bin /tmp/usb-live/syslinux/syslinux.bin
mv /tmp/usb-live/syslinux/isolinux.cfg /tmp/usb-live/syslinux/syslinux.cfg

কার্নেল পরামিতি

এখন আমরা লাইভ সিস্টেম ফাইলগুলি একটি রিড-রাইটিং ফাইল সিস্টেমে অনুলিপি করেছি, আমরা গ্রাব এবং সিসলিনাক্স কনফিগারেশনটি পরিচালনা করতে পারি।

অধ্যবসায় কার্নেল প্যারামিটার menu.cfgএবং যুক্ত করুন grub.cfg। উভয় ফাইলে persistenceএর সাথে সংশ্লিষ্ট প্রথম লাইনের শেষে কীওয়ার্ডটি যুক্ত করুন boot=live

sed --in-place '0,/boot=live/{s/\(boot=live .*\)$/\1 persistence/}' /tmp/usb-live/boot/grub/grub.cfg /tmp/usb-live/syslinux/menu.cfg

কীবোর্ড-লেআউট কার্নেল প্যারামিটার সেট করুন। উভয় ফাইলে boot=liveএটির সাথে সংশ্লিষ্ট প্রথম লাইনের শেষে কীওয়ার্ড যুক্ত করুন ।

sed --in-place '0,/boot=live/{s/\(boot=live .*\)$/\1 keyboard-layouts=de locales=en_US.UTF-8,de_DE.UTF-8/}' /tmp/usb-live/boot/grub/grub.cfg /tmp/usb-live/syslinux/menu.cfg

গ্রাব স্প্ল্যাশ

গ্রাব স্প্ল্যাশ চিত্রটি ঠিক করুন (alচ্ছিক; আমরা এটিকে অন্য ডিরেক্টরিতে স্থানান্তরিত করেছি)।

sed --in-place 's#isolinux/splash#syslinux/splash#' /tmp/usb-live/boot/grub/grub.cfg

আনমাউন্টিং এবং ক্লিনআপ

umount /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso
rmdir /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso

এটি ইউইএফআই এবং বিআইওএস উভয়ের পক্ষে কেন কাজ করা উচিত

ইউইএফআই মোডে শুরু করার সময়, পিসি জিপিটি পার্টিশন টেবিলের মধ্যে সংজ্ঞায়িত FAT পার্টিশনগুলি স্ক্যান করবে। প্রথম FAT পার্টিশনে UEFI গ্রাব বুটলোডার বহন করে যা পাওয়া যায় কারণ এটি অপসারণযোগ্য ড্রাইভের জন্য UEFI দ্বারা নির্দিষ্ট পথে (এটি --removableকরার জন্য স্যুইচ করা grub-install) অবস্থিত। এটি কাজ করার জন্য কোনও ইউইএফআই বুট এন্ট্রি প্রয়োজনীয় নয়, আমাদের কেবল পিসিটিকে ইউএসবি ড্রাইভ থেকে বুট করার চেষ্টা করতে হবে। সেই গ্রাবটি সেখান থেকে নেওয়ার জন্য এটি কনফিগার করা হয়েছে (grub.cfg লোড করুন, মেনু প্রদর্শন করুন ইত্যাদি)।

বিআইওএস মোডে শুরু করার সময় এবং ইউএসবি ড্রাইভ থেকে বুট করার জন্য নির্বাচন করার সময়, পিসি ইউএসবি ড্রাইভের gptmbr.binসুরক্ষামূলক এমবিআরকে আমরা লিখেছি এমন বুটলোডার কোডটি কার্যকর করবে । এই পার্টিশন থেকে এই বুটলোডারটি জিপিটি পার্টিশনটিকে legacy_bootপতাকা এবং চেইনলড সিসলিনাক্স দ্বারা চিহ্নিত চিহ্নিত করে । সিসলিনাক্স তারপরে নেয় (মেনু.cfg লোড করুন, মেনু প্রদর্শন করুন ইত্যাদি)।

এনক্রিপ্ট করা অধ্যবসায়

অধ্যবসায় পার্টিশনে প্লেইন ext4 ব্যবহার করার পরিবর্তে, প্রথমে LUKS (ব্যবহার করে cryptsetup) দিয়ে স্থায়ী পার্টিশনটি এনক্রিপ্ট করা যায় , তারপরে ext4 (সঠিক লেবেল ব্যবহার করে ) বিন্যাস করতে পারেন। যাইহোক, ডকুমেন্টেশন হিসাবে বলা হয়েছে, লাইভ সিস্টেমে অবশ্যই cryptsetupপ্যাকেজ অন্তর্ভুক্ত করা উচিত । অন্যথায়, এনক্রিপ্ট করা পার্টিশনটি লাইভ সিস্টেম দ্বারা ডিক্রিপ্ট করা যায় না। এর অর্থ প্রথমে কাস্টম লাইভ আইএসও তৈরি করতে হবে। এটি অবশ্য এই উত্তরের ক্ষেত্রের বাইরে।

ইতিহাস

--no-uefi-secure-bootবিকল্প পূর্বে থেকে কল অংশ ছিল না grub-install। লাঠিটি আমার পক্ষে ভাল কাজ করেছে, তবে এটি ডিবিয়ান বাস্টারের সাথে বন্ধ হয়ে গেছে, যদিও সুরক্ষিত বুটটি এখনও আমার মেশিনে অক্ষম রয়েছে।


1
আমি আপনাকে ধন্যবাদ জানাতে এখানে একটি অ্যাকাউন্ট তৈরি করেছি। দুর্দান্ত ম্যানুয়াল। ছোট পরামর্শ - অধ্যবসায় পার্টিশন এনক্রিপ্ট করা ভাল হবে।
পেটর হাভ্যালিসেক

1
পুনঃটুইট আমি মনে করি এটি করা যথেষ্ট সহজ, তবে আমি এই প্রশ্নোত্তর তৈরির পর থেকে আমার অতিরিক্ত সময় ব্যয় করেছি এবং অন্যান্য সমস্যাগুলি নিয়ে, তাই এখনও আমাকে এই ধারণাটি পুনর্বিবেচনা করতে হবে (এবং আপনার প্রশংসা করার জন্য ধন্যবাদ :)
schlimmchen

দুর্দান্ত কাজ! কিছু অতিরিক্ত ব্যাখ্যা ভাল হবে, যদিও। (নিশ্চিতভাবেই আপনি এটি ম্যান পৃষ্ঠাগুলিতে সন্ধান করতে পারেন, তবে উদাহরণস্বরূপ এমকেটেবল, যদিও ম্যাক্লেবলের মতো একই সত্যিকার অর্থে ডকুমেন্টেড নয়, ইত্যাদি)
মিকুসজেফস্কি

এফএটি ফর্ম্যাটেড ইউএসবি স্টিকটিতে কেবলমাত্র একটি ফাইল থাকা সম্ভব, যাতে অধ্যবসায় ভলিউম থাকে? ফাইলটি মাউন্ট করে লুপের মাধ্যমে এটি সম্ভব হওয়া উচিত। তবে ডিবিয়ানদের ডিআরআরডিকে পার্টিশনের পরিবর্তে একটি ফাইল নেওয়ার কথা কীভাবে বলা যায়?
16:38

এর জন্য ডিবিয়ান লাইভ.অলিথ.ডিবিয়ান.আর.ইউ / লাইভ-ম্যানুয়াল / স্টেবল / ম্যানুয়াল / এইচটিটিএমএল দেখুন । সংক্ষেপে: যে কোনও ফাইল সিস্টেমের মূলের মধ্যে একটি চিত্র (স্পার্স) ফাইল তৈরি করুন, সেই ফাইলটির নাম 'দৃistence়তা' এবং এটি ফর্ম্যাট করুন, উদাহরণস্বরূপ, ext4 সহ।
schlimmchen
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.