অধ্যবসায়ের সাথে একটি ডেবিয়ান লাইভ ইউএসবি ড্রাইভ তৈরি করার একটি উপায় এখানে। এটি অনুপস্থিত প্যাকেজগুলি ইনস্টল করার অনুমতি দেবে যা এর পর থেকে অধ্যবসায় ব্যবহার করে প্রতিটি লাইভ বুটে উপলব্ধ হবে। যেহেতু আমরা একটি রিড-রাইটিং সক্ষম ফাইল সিস্টেমে লাইভ আইএসও ইমেজ ফাইল-সিস্টেম সামগ্রীগুলি পুনরায় তৈরি করতে পারি, আমরা অধ্যবসায় সক্ষম করতে বুটলোডার কনফিগারেশনগুলি পরিবর্তন করতে এবং বুটটিতে কীবোর্ড বিন্যাসটি সেট করতে পারি।
এখানে বর্ণিত পদক্ষেপগুলি একটি ডেবিয়ান প্রসারিত লাইভ চিত্র তৈরি করতে দেবিয়ান স্ট্রেচ এবং বাস্টারে কাজ করার জন্য পরীক্ষা করা হয়েছিল।
অনেকগুলি পদক্ষেপ জড়িত রয়েছে তবে মনে হয় এই পদ্ধতিটি এখনও বেশ দক্ষ।
দাবি অস্বীকার: আপনি লক্ষ্য ইউএসবি ড্রাইভে ডেটা হারাবেন এবং নীচের কমান্ডগুলিকে গুছিয়ে নিলে আপনি পরে খুব দুঃখিত অনুভব করতে পারেন। আমি আপনার কর্মের জন্য দায়ী না।
ভাজ্ঞবান অনুভব করছি
আপনি যদি আজকে বিশেষভাবে ভাগ্যবান বোধ করেন তবে আপনি নিজের জন্য প্রক্রিয়াটি স্বয়ংক্রিয় করে নেওয়ার জন্য একটি বাশ স্ক্রিপ্ট চেষ্টা করতে পারেন । এটিকে প্রথম প্যারামিটার হিসাবে আপনার আইএসও চিত্রের পথ এবং দ্বিতীয় হিসাবে ইউএসবি ড্রাইভ ব্লক ডিভাইসের নাম দিন। মনে রাখবেন যে এই স্ক্রিপ্টটি অত্যন্ত বিপজ্জনক এবং আপনার প্রথমে এটি পড়া এবং বোঝার ছাড়াই এটি সম্পাদন করা উচিত নয়।
টি এল; ডিআর
ডেবিয়ান লাইভ আইএসও চিত্র পান, তারপরে নিম্নলিখিতটি করুন:
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
। লাঠিটি আমার পক্ষে ভাল কাজ করেছে, তবে এটি ডিবিয়ান বাস্টারের সাথে বন্ধ হয়ে গেছে, যদিও সুরক্ষিত বুটটি এখনও আমার মেশিনে অক্ষম রয়েছে।