আপডেট: আমি যাচাই করেছি যে নীচের বিবরণটি উবুন্টু 16.04 এর জন্যও কাজ করে। অন্যান্য ব্যবহারকারীরা 17.10 এবং 18.04.1 এ কাজ করার কথা জানিয়েছেন।
দ্রষ্টব্য: এই হাওটি আপনাকে LVM দেবে না। আপনি যদি এলভিএমও চান, তবে ইউআইএফআই বিআইওএসের সাহায্যে মেশিনে রেড 1 এবং উভিন্টু 18.04 ডেস্কটপ ইনস্টল করুন ।
কয়েকদিন চেষ্টা করার পরেও এখন আমার একটি ওয়ার্কিং সিস্টেম আছে! সংক্ষেপে, সমাধানটি নিম্নলিখিত পদক্ষেপগুলি নিয়ে গঠিত:
- একটি উবুন্টু লাইভ সিডি / ইউএসবি ব্যবহার করে বুট করুন।
- প্রয়োজন অনুযায়ী এসএসডি পার্টিশন করুন।
- অনুপস্থিত প্যাকেজগুলি ইনস্টল করুন (এমডিএডএম এবং গ্রাব-এফি)।
- RAID পার্টিশন তৈরি করুন।
- ইউবিকুইটি ইনস্টলারটি চালান (তবে নতুন সিস্টেমে বুট করবেন না)।
- RAIDed মূল থেকে বুট সক্ষম করতে ইনস্টল করা সিস্টেম (initramfs) প্যাচ করুন।
- GRUB এর মাধ্যমে প্রথম এসএসডি এর EFI পার্টিশনটি তৈরি করুন এবং এটি EFI বুট চেইনে ইনস্টল করুন।
- অন্যান্য এসএসডি তে EFI পার্টিশনটি ক্লোন করুন এবং এটি বুট চেইনে ইনস্টল করুন।
- সম্পন্ন! আপনার সিস্টেমে এখন RAID 1 রিডানডেন্সি থাকবে। মনে রাখবেন যে UEFI পার্টিশনগুলি অচ্ছুত হওয়ায় কার্নেল আপডেটের পরে বিশেষ কিছু করার দরকার নেই।
সমাধানের 6 ধাপের মূল উপাদানটি ছিল বুট সিকোয়েন্সের বিলম্ব যা আমাকে অন্যথায় এসএসডি অনুপস্থিত থাকলে GRUB প্রম্পটে (কীবোর্ড ছাড়াই!) স্কোয়ারলিটি ফেলে দেয়।
বিস্তারিত হাটো
1. বুট
ইউএসবি স্টিক থেকে ইএফআই ব্যবহার করে বুট করুন। ঠিক কীভাবে আপনার সিস্টেমে আলাদা হবে। ইনস্টল না করে উবুন্টু চেষ্টা করুন নির্বাচন করুন ।
একটি টার্মিনাল এমুলেটর শুরু করুন, উদাহরণস্বরূপ xterm
নীচের কমান্ডগুলি চালানোর জন্য।
1.1 অন্য কম্পিউটার থেকে লগইন করুন
এটি চেষ্টা করার সময়, আমি প্রায়শই অন্যটি থেকে ইতিমধ্যে সম্পূর্ণরূপে কনফিগার করা কম্পিউটার থেকে লগইন করা সহজ করে দেখি। কমান্ডের এই সরলীকৃত কাট-পেস্ট ইত্যাদি If
কনফিগার করা কম্পিউটারে ওপেনশ সার্ভারটি ইনস্টল করুন:
sudo apt-get install openssh-server
পাসওয়ার্ড পরিবর্তন করুন। ব্যবহারকারীর জন্য ডিফল্ট পাসওয়ার্ড ubuntu
ফাঁকা। আপনি সম্ভবত একটি মাঝারি শক্তি পাসওয়ার্ড চয়ন করতে পারেন। আপনি আপনার নতুন কম্পিউটারটি রিবুট করার সাথে সাথে এটি ভুলে যাবে।
passwd
এখন আপনি অন্য কম্পিউটার থেকে উবুন্টু লাইভ সেশনে লগইন করতে পারেন। নীচের নির্দেশাবলী লিনাক্স জন্য:
ssh -l ubuntu <your-new-computer>
আপনি যদি সন্দেহভাজন-মধ্য-হামলার বিষয়ে সতর্কতা পান তবে নতুন কম্পিউটার সনাক্ত করতে আপনাকে ব্যবহৃত ssh কীগুলি সাফ করতে হবে। এটি openssh-server
যখনই ইনস্টল করা হয় তখন নতুন সার্ভার কী তৈরি করে because কমান্ডটি ব্যবহার করার জন্য সাধারণত মুদ্রিত হয় এবং দেখতে হবে
ssh-keygen -f <path-to-.ssh/known_hosts> -R <your-new-computer>
এই আদেশটি কার্যকর করার পরে আপনার উবুন্টু লাইভ সেশনে লগইন করতে সক্ষম হওয়া উচিত।
পার্টিশন ডিস্ক
কোনও পুরানো পার্টিশন এবং বুট ব্লক সাফ করুন। সতর্কবাণী! এটি আপনার ডিস্কের ডেটা ধ্বংস করবে!
sudo sgdisk -z /dev/sda
sudo sgdisk -z /dev/sdb
আপনার ড্রাইভের সবচেয়ে ছোটতে নতুন পার্টিশন তৈরি করুন: ESP এর জন্য 100M, RAID SWAP এর জন্য 32G, RAID রুটের জন্য বিশ্রাম rest যদি আপনার এসডিএ ড্রাইভটি সবচেয়ে ছোট হয় তবে বিভাগ 2.1 অনুসরণ করুন, অন্যথায় বিভাগ 2.2।
২.১ পার্টিশন সারণী তৈরি করুন (/ dev / sda ছোট)
নিম্নলিখিত পদক্ষেপগুলি করুন:
sudo sgdisk -n 1:0:+100M -t 1:ef00 -c 1:"EFI System" /dev/sda
sudo sgdisk -n 2:0:+32G -t 2:fd00 -c 2:"Linux RAID" /dev/sda
sudo sgdisk -n 3:0:0 -t 3:fd00 -c 3:"Linux RAID" /dev/sda
পার্টিশন টেবিলটি অন্য ডিস্কে অনুলিপি করুন এবং অনন্য ইউআইডিগুলিকে পুনর্জাত করুন (আসলে এসডিএর জন্য ইউইউডিগুলি পুনঃজেনারেট করবে)।
sudo sgdisk /dev/sda -R /dev/sdb -G
২.২ পার্টিশন সারণী তৈরি করুন (/ dev / sdb ছোট)
নিম্নলিখিত পদক্ষেপগুলি করুন:
sudo sgdisk -n 1:0:+100M -t 1:ef00 -c 1:"EFI System" /dev/sdb
sudo sgdisk -n 2:0:+32G -t 2:fd00 -c 2:"Linux RAID" /dev/sdb
sudo sgdisk -n 3:0:0 -t 3:fd00 -c 3:"Linux RAID" /dev/sdb
পার্টিশন টেবিলটি অন্য ডিস্কে অনুলিপি করুন এবং অনন্য ইউআইডিগুলিকে পুনরায় তৈরি করুন (আসলে এসডিবির জন্য ইউআইডিগুলি পুনঃজেনারেট করবে)।
sudo sgdisk /dev/sdb -R /dev/sda -G
2.3 / dev / sda এ FAT32 ফাইল সিস্টেম তৈরি করুন
EFI পার্টিশনের জন্য FAT32 ফাইল সিস্টেম তৈরি করুন।
sudo mkfs.fat -F 32 /dev/sda1
mkdir /tmp/sda1
sudo mount /dev/sda1 /tmp/sda1
sudo mkdir /tmp/sda1/EFI
sudo umount /dev/sda1
৩. অনুপস্থিত প্যাকেজ ইনস্টল করুন
উবুন্টু লাইভ সিডি দুটি কী প্যাকেজ ছাড়াই আসে; গ্রাব-এফি এবং এমদাদম। সেগুলি ইনস্টল করুন। (আমি এখানে 100% নিশ্চিত গ্রাব-এফির দরকার নেই, তবে আগত ইনস্টলেশনটির সাথে প্রতিসাম্যতা বজায় রাখার জন্য এটি এনেও আনতে হবে।)
sudo apt-get update
sudo apt-get -y install grub-efi-amd64 # (or grub-efi-amd64-signed)
sudo apt-get -y install mdadm
আপনি যদি নিরাপদ বুট সক্ষম করে থাকেন grub-efi-amd64-signed
তার পরিবর্তে আপনার প্রয়োজন হতে পারে grub-efi-amd64
। (আলেকের মন্তব্য দেখুন।)
4. RAID পার্টিশন তৈরি করুন
ডিগ্রিড মোডে RAID ডিভাইসগুলি তৈরি করুন। ডিভাইসগুলি পরে সম্পন্ন হবে। একটি সম্পূর্ণ RAID1 তৈরি করা ubiquity
নীচে ইনস্টলেশন করার সময় আমাকে মাঝে মাঝে সমস্যা দেয় , কেন তা নিশ্চিত নয়। (মাউন্ট / আনমাউন্ট? ফর্ম্যাট?)
sudo mdadm --create /dev/md0 --bitmap=internal --level=1 --raid-disks=2 /dev/sda2 missing
sudo mdadm --create /dev/md1 --bitmap=internal --level=1 --raid-disks=2 /dev/sda3 missing
RAID স্থিতি যাচাই করুন।
cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[0]
216269952 blocks super 1.2 [2/1] [U_]
bitmap: 0/2 pages [0KB], 65536KB chunk
md0 : active raid1 sda2[0]
33537920 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
unused devices: <none>
এমডি ডিভাইসগুলি পার্টিশন করুন।
sudo sgdisk -z /dev/md0
sudo sgdisk -z /dev/md1
sudo sgdisk -N 1 -t 1:8200 -c 1:"Linux swap" /dev/md0
sudo sgdisk -N 1 -t 1:8300 -c 1:"Linux filesystem" /dev/md1
5. ইনস্টলারটি চালান
যে কোনও উপায়ে ব্যর্থ হবে এমন বুট লোডার বাদ দিয়ে সর্বব্যাপী ইনস্টলারটি চালান । ( দ্রষ্টব্য : আপনি যদি ssh- এর মাধ্যমে লগ ইন করেছেন তবে আপনি সম্ভবত এটির পরিবর্তে নতুন কম্পিউটারে এটি প্রয়োগ করতে চান))
sudo ubiquity -b
ইনস্টলেশন প্রকার হিসাবে অন্য কিছু চয়ন করুন এবং md1p1
প্রকার ext4
, বিন্যাস: হ্যাঁ, এবং মাউন্ট পয়েন্টে সংশোধন করুন /
। md0p1
পার্টিশন স্বয়ংক্রিয়ভাবে swap 'র হিসাবে নির্বাচিত করা হবে।
ইনস্টলেশন শেষ হওয়ার পরে এক কাপ কফি পান।
গুরুত্বপূর্ণ: ইনস্টলেশন সমাপ্ত হওয়ার পরে, পরীক্ষাটি চালিয়ে যান নির্বাচন করুন কারণ সিস্টেমটি এখনও বুট প্রস্তুত না।
RAID ডিভাইসগুলি সম্পূর্ণ করুন
RAID- তে অপেক্ষমান এসডিবি পার্টিশন সংযুক্ত করুন।
sudo mdadm --add /dev/md0 /dev/sdb2
sudo mdadm --add /dev/md1 /dev/sdb3
সমস্ত RAID ডিভাইস ঠিক আছে যাচাই করুন (এবং বিকল্পভাবে সিঙ্ক করা হচ্ছে)।
cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[1] sda3[0]
216269952 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.2% (465536/216269952) finish=17.9min speed=200000K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
md0 : active raid1 sdb2[1] sda2[0]
33537920 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
unused devices: <none>
রিবুটগুলি সহ সিঙ্কের সময় নীচের প্রক্রিয়াটি চলতে পারে।
The. ইনস্টল করা সিস্টেমটি কনফিগার করুন
ইনস্টল সিস্টেমে ক্রুট সক্ষম করার জন্য সেট আপ করুন।
sudo -s
mount /dev/md1p1 /mnt
mount -o bind /dev /mnt/dev
mount -o bind /dev/pts /mnt/dev/pts
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc
cat /etc/resolv.conf >> /mnt/etc/resolv.conf
chroot /mnt
প্যাকেজগুলি কনফিগার করুন এবং ইনস্টল করুন।
apt-get install -y grub-efi-amd64 # (or grub-efi-amd64-signed; same as in step 3)
apt-get install -y mdadm
আপনি যদি এমডি ডিভাইসগুলি এখনও সিঙ্ক করছেন, আপনি মাঝে মাঝে সতর্কতাগুলি দেখতে পাবেন:
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
এটি স্বাভাবিক এবং এড়ানো যায় ( এই প্রশ্নের নীচে উত্তর দেখুন
)।
nano /etc/grub.d/10_linux
# change quick_boot and quiet_boot to 0
অক্ষম করা হচ্ছে quick_boot
এড়াতে হবে Diskfilter লিখেছেন সমর্থিত নয় বাগ। অক্ষম quiet_boot
করা কেবল ব্যক্তিগত পছন্দের।
যেকোন লেবেল উল্লেখ মুছে ফেলতে, অর্থাৎ পরিবর্তন করুন /etc/m دادm/mdadm.conf পরিবর্তন করুন Mod
ARRAY /dev/md/0 metadata=1.2 name=ubuntu:0 UUID=f0e36215:7232c9e1:2800002e:e80a5599
ARRAY /dev/md/1 metadata=1.2 name=ubuntu:1 UUID=4b42f85c:46b93d8e:f7ed9920:42ea4623
থেকে
ARRAY /dev/md/0 UUID=f0e36215:7232c9e1:2800002e:e80a5599
ARRAY /dev/md/1 UUID=4b42f85c:46b93d8e:f7ed9920:42ea4623
এই পদক্ষেপটি অপ্রয়োজনীয় হতে পারে তবে আমি কিছু পৃষ্ঠাগুলি দেখেছি যে নামকরণের স্কিমগুলি অস্থির হতে পারে (নাম = উবুন্টু: 0/1) এবং এটি বুট চলাকালীন জরিমানা থেকে নিখুঁত সূক্ষ্ম RAID ডিভাইসটি বন্ধ করতে পারে।
/etc/default/grub
পড়ার জন্য লাইনগুলি সংশোধন করুন
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
আবার এই পদক্ষেপটি অপ্রয়োজনীয় হতে পারে তবে আমি চোখ খোলা রেখে বুট করা পছন্দ করি ...
6.1। স্লিপ স্ক্রিপ্ট যুক্ত করুন
(এটা সম্প্রদায় যেটা এই পদক্ষেপ অপ্রয়োজনীয় হতে পারে এবং ব্যবহার প্রতিস্থাপিত হতে পারে দ্বারা প্রস্তাবিত হয়েছে GRUB_CMDLINE_LINUX="rootdelay=30"
মধ্যে /etc/default/grub
। কারণ এই হাওটুর নীচে ব্যাখ্যা জন্য, আমি ঘুম স্ক্রিপ্ট যদিও এটি rootdelay ব্যবহার না করে uglier হয় দিয়ে বিদ্ধ করার সুপারিশ। সুতরাং, আমরা আমাদের নিয়মিত প্রোগ্রাম দিয়ে চালিয়ে যাচ্ছি ... )
একটি স্ক্রিপ্ট তৈরি করুন যা RAID ডিভাইসগুলির নিষ্পত্তি হওয়ার জন্য অপেক্ষা করবে। এই বিলম্ব ছাড়াই, RAID সমাবেশ সময় শেষ না হওয়ায় মূলের মাউন্টিং ব্যর্থ হতে পারে । আমি এটি হার্ড উপায়টি খুঁজে পেয়েছি - ডিস্ক ব্যর্থতা অনুকরণ করার জন্য এসএসডিগুলির একটির সংযোগ বিচ্ছিন্ন না করা পর্যন্ত সমস্যাটি দেখা যায়নি! উপলব্ধ হার্ডওয়্যার, যেমন ধীর বাইরের ইউএসবি ডিস্ক ইত্যাদির উপর নির্ভর করে সময় সামঞ্জস্য করা প্রয়োজন etc.
নিম্নলিখিত কোড প্রবেশ করান /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile
:
#!/bin/sh
echo
echo "sleeping for 30 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 25 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 20 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 15 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 10 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 5 seconds while udevd and mdadm settle down"
sleep 5
echo "done sleeping"
স্ক্রিপ্টটি সম্পাদনযোগ্য করুন এবং এটি ইনস্টল করুন।
chmod a+x /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile
update-grub
update-initramfs -u
7. প্রথম এসএসডি থেকে বুট সক্ষম করুন
এখন সিস্টেমটি প্রায় প্রস্তুত, কেবল ইউইএফআই বুট প্যারামিটারগুলি ইনস্টল করা দরকার।
mount /dev/sda1 /boot/efi
grub-install --boot-directory=/boot --bootloader-id=Ubuntu --target=x86_64-efi --efi-directory=/boot/efi --recheck
update-grub
umount /dev/sda1
এটি বুথ লোডারটি ইনস্টল করবে /boot/efi/EFI/Ubuntu
(ওরফে EFI/Ubuntu
অন /dev/sda1
) এবং কম্পিউটারে ইউইএফআই বুট চেইনে এটি প্রথমে ইনস্টল করবে।
৮. দ্বিতীয় এসএসডি থেকে বুট সক্ষম করুন
আমরা প্রায় শেষ। এই মুহুর্তে, আমাদের sda
ড্রাইভটি পুনরায় বুট করতে সক্ষম হওয়া উচিত । তদ্ব্যতীত, ড্রাইভ বা ড্রাইভের mdadm
ব্যর্থতা পরিচালনা করতে সক্ষম হওয়া উচিত । তবে, EFI রেড হয় না, তাই আমাদের এটি ক্লোন করা দরকার ।sda
sdb
dd if=/dev/sda1 of=/dev/sdb1
দ্বিতীয় ড্রাইভে বুট লোডার ইনস্টল করা ছাড়াও, এই FAT32 ফাইল সিস্টেম এর UUID উপর করতে হবে sdb1
পার্টিশন (যেমন দ্বারা রিপোর্ট blkid
) এর সঙ্গে মিলছে sda1
এবং /etc/fstab
। (নোট কিন্তু যে জন্য UUID জানা /dev/sda1
এবং /dev/sdb1
পার্টিশন এখনও আলাদা হতে হবে - তুলনা ls -la /dev/disk/by-partuuid | grep sd[ab]1
সঙ্গে blkid /dev/sd[ab]1
পরে নিজের জন্য চেক করতে ইনস্টল করুন।)
অবশেষে, আমাদের অবশ্যই sdb1
পার্টিশনটি বুট ক্রমে sertোকাতে হবে। (দ্রষ্টব্য: আপনার BIOS এর উপর নির্ভর করে এই পদক্ষেপটি অপ্রয়োজনীয় হতে পারে I
efibootmgr -c -g -d /dev/sdb -p 1 -L "Ubuntu #2" -l '\EFI\ubuntu\grubx64.efi'
আমি এটি পরীক্ষা করা হয়নি, কিন্তু এটা সম্ভবত উপর ESP মধ্যে অনন্য লেবেল (-L) থাকতে প্রয়োজনীয় sda
এবং sdb
।
এটি বর্তমান বুট অর্ডারটির একটি মুদ্রণ উত্পন্ন করবে, যেমন
Timeout: 0 seconds
BootOrder: 0009,0008,0000,0001,0002,000B,0003,0004,0005,0006,0007
Boot0000 Windows Boot Manager
Boot0001 DTO UEFI USB Floppy/CD
Boot0002 DTO UEFI USB Hard Drive
Boot0003* DTO UEFI ATAPI CD-ROM Drive
Boot0004 CD/DVD Drive
Boot0005 DTO Legacy USB Floppy/CD
Boot0006* Hard Drive
Boot0007* IBA GE Slot 00C8 v1550
Boot0008* Ubuntu
Boot000B KingstonDT 101 II PMAP
Boot0009* Ubuntu #2
মনে রাখবেন যে বুট ক্রমে উবুন্টু # 2 (এসডিবি) এবং উবুন্টু (এসডিএ) প্রথম।
রিবুট
এখন আমরা রিবুট করতে প্রস্তুত are
exit # from chroot
exit # from sudo -s
sudo reboot
সিস্টেমটি এখন উবুন্টুতে পুনরায় বুট করা উচিত (আপনাকে প্রথমে উবুন্টু লাইভ ইনস্টলেশন মিডিয়া সরিয়ে ফেলতে হবে।)
বুট করার পরে, আপনি চালাতে পারেন
sudo update-grub
গ্রাব বুট চেইনে উইন্ডোজ বুট লোডার সংযুক্ত করতে।
ভার্চুয়াল মেশিন গেটস
আপনি যদি প্রথমে ভার্চুয়াল মেশিনে এটি ব্যবহার করে দেখতে চান তবে কিছু সতর্কতা রয়েছে: স্পষ্টতই, এনইভিআরএমে যে ইউইএফআই তথ্য রাখে তা পুনরায় বুটগুলির মধ্যে স্মরণ করা হয়, তবে শাটডাউন-পুনরায় আরম্ভের চক্রের মধ্যে নয়। সেক্ষেত্রে আপনি ইউইএফআই শেল কনসোলে শেষ হতে পারেন। নিম্নলিখিত কমান্ডগুলি আপনাকে আপনার মেশিনে বুট করা উচিত /dev/sda1
(এর FS1:
জন্য ব্যবহার করুন /dev/sdb1
):
FS0:
\EFI\ubuntu\grubx64.efi
ভার্চুয়ালবক্সে ইউইএফআই বুটের শীর্ষ উত্তরের প্রথম সমাধান - উবুন্টু 12.04 এছাড়াও সহায়ক হতে পারে।
ডিস্ক ব্যর্থতা অনুকরণ
কোনও একটি RAID উপাদান ডিভাইস ব্যর্থতা ব্যবহার করে অনুকরণ করা যেতে পারে mdadm
। তবে বুট স্টাফ ডিস্ক ব্যর্থতা থেকে বেঁচে থাকবে তা যাচাই করতে আমাকে কম্পিউটারটি বন্ধ করে দিতে হয়েছিল এবং একটি ডিস্ক থেকে পাওয়ার সংযোগ বিচ্ছিন্ন করতে হয়েছিল। আপনি যদি এটি করেন তবে প্রথমে নিশ্চিত করুন যে এমডি ডিভাইসগুলি সিঙ্ক হয়েছে ।
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb3[2] sda3[0]
216269952 blocks super 1.2 [2/2] [UU]
bitmap: 2/2 pages [8KB], 65536KB chunk
md0 : active raid1 sda2[0] sdb2[2]
33537920 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
unused devices: <none>
নীচের নির্দেশে, এসডিএক্স হ'ল ব্যর্থ ডিভাইস (এক্স = এ বা বি) এবং এসডিওয়াই ঠিক আছে ডিভাইস।
একটি ড্রাইভ সংযোগ বিচ্ছিন্ন করুন
কম্পিউটার বন্ধ করুন. একটি ড্রাইভ সংযোগ বিচ্ছিন্ন করুন। আবার শুরু. উবুন্টু এখন ডিগ্রিড মোডে RAID ড্রাইভের সাথে বুট করা উচিত। (উদযাপন করুন! এটিই আপনি অর্জন করার চেষ্টা করেছিলেন !;)
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda3[0]
216269952 blocks super 1.2 [2/1] [U_]
bitmap: 2/2 pages [8KB], 65536KB chunk
md0 : active raid1 sda2[0]
33537920 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
unused devices: <none>
ব্যর্থ ডিস্ক থেকে পুনরুদ্ধার করুন
আপনার যদি কোনও ত্রুটিযুক্ত ডিস্কটি প্রতিস্থাপনের প্রয়োজন হয় তবে এটি অনুসরণ করা প্রক্রিয়া। আপনি যদি কোনও প্রতিস্থাপন অনুকরণ করতে চান তবে আপনি উবুন্টু লাইভ সেশনে বুট করতে পারেন এবং ব্যবহার করতে পারেন
dd if=/dev/zero of=/dev/sdX
রিয়েল সিস্টেমে রিবুট করার আগে ডিস্কটিকে পরিষ্কার করে ফেলতে হবে। আপনি যদি উপরের বিভাগে স্রেফ বুট / RAID অতিরিক্ত ব্যবহারের পরীক্ষা করেছেন তবে আপনি এই পদক্ষেপটি এড়িয়ে যেতে পারেন। তবে আপনার সিস্টেমে সম্পূর্ণ বুট / রেড রিডানডেন্সি পুনরুদ্ধার করতে আপনাকে অবশ্যই নীচের 2 এবং 4 পদক্ষেপগুলি করতে হবে।
ডিস্ক প্রতিস্থাপনের পরে RAID + বুট সিস্টেম পুনরুদ্ধার করতে নিম্নলিখিত পদক্ষেপগুলি প্রয়োজন:
- নতুন ড্রাইভ পার্টিশন।
- এমডি ডিভাইসে পার্টিশন যুক্ত করুন।
- বুট পার্টিশনটি ক্লোন করুন।
- ক্লোনটির জন্য একটি EFI রেকর্ড যুক্ত করুন।
1. নতুন ড্রাইভ পার্টিশন
স্বাস্থ্যকর ড্রাইভ থেকে পার্টিশন টেবিলটি অনুলিপি করুন:
sudo sgdisk /dev/sdY -R /dev/sdX
নতুন ড্রাইভে ইউআইডিগুলিকে পুনরায় এলোমেলো করুন।
sudo sgdisk /dev/sdX -G
২. এমডি ডিভাইসগুলিতে যুক্ত করুন
sudo mdadm --add /dev/md0 /dev/sdX2
sudo mdadm --add /dev/md1 /dev/sdX3
৩. বুট পার্টিশনটি ক্লোন করুন
স্বাস্থ্যকর ড্রাইভ থেকে ইএসপি ক্লোন করুন। (সাবধান, আপনি যদি সত্যিই এটি আঁকেন তবে পুনরুদ্ধার সক্ষম করতে প্রথমে উভয় ইএসপি-র একটি ডাম্প-টু-ফাইল করুন))
sudo dd if=/dev/sdY1 of=/dev/sdX1
4. বুট অর্ডার নতুন সঞ্জীবিত ডিস্ক .োকান
ক্লোনটির জন্য একটি EFI রেকর্ড যুক্ত করুন। প্রয়োজনীয় হিসাবে -L লেবেলটি সংশোধন করুন।
sudo efibootmgr -c -g -d /dev/sdX -p 1 -L "Ubuntu #2" -l '\EFI\ubuntu\grubx64.efi'
এখন, সিস্টেমটি পুনরায় বুট করার সময় এটি স্বাভাবিক অবস্থায় ফিরে আসা উচিত (RAID ডিভাইসগুলি এখনও সিঙ্ক করতে পারে)!
ঘুমের স্ক্রিপ্ট কেন?
সম্প্রদায়টি দ্বারা পরামর্শ দেওয়া হয়েছে যে স্লিপ স্ক্রিপ্ট যুক্ত করা অপ্রয়োজনীয় হতে পারে GRUB_CMDLINE_LINUX="rootdelay=30"
এবং /etc/default/grub
এরপরে ব্যবহার করে প্রতিস্থাপন করা যেতে পারে sudo update-grub
। এই পরামর্শটি অবশ্যই পরিষ্কার এবং এটি কোনও ডিস্ক ব্যর্থতা / দৃশ্যের প্রতিস্থাপনে কাজ করে। যাইহোক, একটি সতর্কতা আছে ...
আমি আমার দ্বিতীয় এসএসডি সংযোগ বিচ্ছিন্ন করেছিলাম এবং rootdelay=30
স্লিপ স্ক্রিপ্টের পরিবর্তে এটি ইত্যাদির সাথে জানতে পেরেছি :
1) সিস্টেমটি "ব্যর্থ" ড্রাইভ ছাড়াই অবনমিত মোডে বুট করে।
2) অ-অবনমিত বুটে (উভয় ড্রাইভ উপস্থিত) বুটের সময় হ্রাস করা হয়। দ্বিতীয় ড্রাইভ অনুপস্থিত সাথে বিলম্ব কেবল অনুধাবনযোগ্য।
1) এবং 2) আমি আমার দ্বিতীয় ড্রাইভটি পুনরায় যুক্ত না করা পর্যন্ত দুর্দান্ত লাগছিল। বুটে, RAID অ্যারে একত্রিত হতে ব্যর্থ হয়েছিল এবং initramfs
কী করতে হবে তা না জেনে প্রম্পটে আমাকে রেখে দেয় left ক) উবুন্টু লাইভ ইউএসবি স্টিক বুট করা, খ) ইনস্টল করা mdadm
এবং গ) ম্যানুয়ালি অ্যারে পুনরায় জমায়েত করার মাধ্যমে পরিস্থিতি থেকে রক্ষা পাওয়া সম্ভব হয়েছিল তবে ... আমি কোথাও কোথাও বিভ্রান্ত হয়েছি। পরিবর্তে, যখন আমি এই পরীক্ষাটি পুনরায় দৌড়ে সঙ্গে ঘুম স্ক্রিপ্ট (হ্যাঁ, আমি n তম সময় ... শীর্ষ থেকে হাওটুর শুরু করেনি), সিস্টেম করেনি বুট। অ্যারেগুলি অবনমিত মোডে ছিল এবং আমি /dev/sdb[23]
কোনও অতিরিক্ত ইউএসবি স্টিক ছাড়াই ম্যানুয়ালি পার্টিশনগুলি পুনরায় যুক্ত করতে পারতাম । স্লিপ স্ক্রিপ্ট কেন কাজ rootdelay
করে তা আমি জানি না। সম্ভবত mdadm
দুটি, সামান্য বাইরে সিঙ্ক উপাদান ডিভাইস গুলিয়ে বিভ্রান্ত হয়ে পড়ে তবে আমি ভেবেছিলামmdadm
যে হ্যান্ডেল করার জন্য ডিজাইন করা হয়েছিল। যাইহোক, যেহেতু স্লিপ স্ক্রিপ্টটি কাজ করে, আমি এটির সাথে লেগে আছি।
এটি যুক্তিযুক্ত হতে পারে যে নিখুঁত স্বাস্থ্যকর RAID উপাদান ডিভাইসটি অপসারণ করা, RAID কে আবার অবনমিত মোডে পুনরায় বুট করা এবং তারপরে উপাদান ডিভাইসটি পুনরায় যুক্ত করা একটি অবাস্তব দৃশ্য: বাস্তবতাবাদী দৃশ্যের পরিবর্তে একটি ডিভাইস ব্যর্থ হয় এবং একটি নতুন দ্বারা প্রতিস্থাপিত হয় mdadm
বিভ্রান্ত হওয়ার জন্য কম সুযোগ রেখে । আমি সেই যুক্তির সাথে একমত তবে, সিস্টেমটি কোনও হার্ডওয়্যার ব্যর্থতা কীভাবে সহ্য করতে পারে তা পরীক্ষার জন্য জানি না আসলে কিছু হার্ডওয়্যার অক্ষম করা ছাড়া! এবং পরীক্ষার পরে, আমি একটি অতিরিক্ত, ওয়ার্কিং সিস্টেমে ফিরে যেতে চাই। (ভাল, আমি আমার দ্বিতীয় এসএসডি অন্য মেশিনে সংযুক্ত করতে এবং এটি পুনরায় যুক্ত করার আগে এটি সোয়াইপ করতে পারতাম, তবে এটি সম্ভবপর নয়))
সংক্ষিপ্তসারে: আমার জ্ঞানের মতে, rootdelay
সমাধানটি অ-অবনমিত বুটের জন্য স্লিপ স্ক্রিপ্টের চেয়ে দ্রুত, এবং একটি বাস্তব ড্রাইভ ব্যর্থতার জন্য / দৃশ্যের প্রতিস্থাপনের জন্য কাজ করা উচিত। যাইহোক, আমি এটি পরীক্ষা করার একটি সম্ভাব্য উপায় জানি না। সুতরাং, আপাতত, আমি কুরুচিপূর্ণ ঘুমের স্ক্রিপ্টটি আটকে দেব।