কোনও UEFI / GPT সিস্টেমে ডুয়াল-বুট RAID 1 পার্টিশন সহ উবুন্টু 14.04 / 16.04 64-বিট ইনস্টল করবেন কীভাবে?


22

আপডেট: নীচে প্রশ্ন এবং উত্তর উবুন্টু 16.04 এ প্রযোজ্য

আমার ডুয়াল এসএসডি এবং উইন (7) অন্য একটি ডিস্কে প্রাক ইনস্টল থাকা একটি কম্পিউটার রয়েছে। পূর্ব-ইনস্টলেশনটি (ইউ) ইএফআই / জিপিটি বুট ব্যবহার করে। আমি আমার এসএসডিগুলিতে একটি RAID1 মূল বিভাজনে উবুন্টু 14.04 64-বিট ডেস্কটপ ইনস্টল করতে চাই এবং এখনও আমার উইন 7 সিস্টেমটি ডুয়াল-বুট করতে সক্ষম হব। এটা কি সম্ভব?

ডেস্কটপ ইনস্টলার ব্যবহার করে এই নির্দেশিকাটি কার্যকর হয়নি, সম্ভবত এটি (স্পষ্টতই) এমবিআর বুটিং অনুমান করে। উভয়ই সার্ভার বিতরণ ইনস্টল করেনি , সম্ভবত একই কারণে।

উত্তর:


36

আপডেট: আমি যাচাই করেছি যে নীচের বিবরণটি উবুন্টু 16.04 এর জন্যও কাজ করে। অন্যান্য ব্যবহারকারীরা 17.10 এবং 18.04.1 এ কাজ করার কথা জানিয়েছেন।

দ্রষ্টব্য: এই হাওটি আপনাকে LVM দেবে না। আপনি যদি এলভিএমও চান, তবে ইউআইএফআই বিআইওএসের সাহায্যে মেশিনে রেড 1 এবং উভিন্টু 18.04 ডেস্কটপ ইনস্টল করুন

কয়েকদিন চেষ্টা করার পরেও এখন আমার একটি ওয়ার্কিং সিস্টেম আছে! সংক্ষেপে, সমাধানটি নিম্নলিখিত পদক্ষেপগুলি নিয়ে গঠিত:

  1. একটি উবুন্টু লাইভ সিডি / ইউএসবি ব্যবহার করে বুট করুন।
  2. প্রয়োজন অনুযায়ী এসএসডি পার্টিশন করুন।
  3. অনুপস্থিত প্যাকেজগুলি ইনস্টল করুন (এমডিএডএম এবং গ্রাব-এফি)।
  4. RAID পার্টিশন তৈরি করুন।
  5. ইউবিকুইটি ইনস্টলারটি চালান (তবে নতুন সিস্টেমে বুট করবেন না)।
  6. RAIDed মূল থেকে বুট সক্ষম করতে ইনস্টল করা সিস্টেম (initramfs) প্যাচ করুন।
  7. GRUB এর মাধ্যমে প্রথম এসএসডি এর EFI পার্টিশনটি তৈরি করুন এবং এটি EFI বুট চেইনে ইনস্টল করুন।
  8. অন্যান্য এসএসডি তে EFI পার্টিশনটি ক্লোন করুন এবং এটি বুট চেইনে ইনস্টল করুন।
  9. সম্পন্ন! আপনার সিস্টেমে এখন 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 রেড হয় না, তাই আমাদের এটি ক্লোন করা দরকার ।sdasdb

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 + বুট সিস্টেম পুনরুদ্ধার করতে নিম্নলিখিত পদক্ষেপগুলি প্রয়োজন:

  1. নতুন ড্রাইভ পার্টিশন।
  2. এমডি ডিভাইসে পার্টিশন যুক্ত করুন।
  3. বুট পার্টিশনটি ক্লোন করুন।
  4. ক্লোনটির জন্য একটি 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সমাধানটি অ-অবনমিত বুটের জন্য স্লিপ স্ক্রিপ্টের চেয়ে দ্রুত, এবং একটি বাস্তব ড্রাইভ ব্যর্থতার জন্য / দৃশ্যের প্রতিস্থাপনের জন্য কাজ করা উচিত। যাইহোক, আমি এটি পরীক্ষা করার একটি সম্ভাব্য উপায় জানি না। সুতরাং, আপাতত, আমি কুরুচিপূর্ণ ঘুমের স্ক্রিপ্টটি আটকে দেব।


দ্রষ্টব্য 1: আপনি যদি উবুন্টু (লাইভ বা অন্যথায়) পুনরায় বুট করার সময় আপনার ইনস্টলেশন চলাকালীন দুর্ঘটনাক্রমে উইন্ডোজটিতে বুট করা উচিত এবং DHCP পরে রহস্যজনকভাবে ব্যর্থ হয়ে যায় (আমার সাথে ঘটেছিল), কম্পিউটার + রাউটারগুলির শাটডাউন + রিবুট সহায়তা করতে পারে। স্পষ্টতই কিছু রাউটার পুনরাবৃত্ত ডিএইচসিপি অনুরোধগুলি সম্পর্কে "স্মার্ট" হওয়ার চেষ্টা করে যা কোনও কারণে উইন্ডোজকে নয় তবে উবুন্টুকে প্রভাবিত করে ... দীর্ঘশ্বাস ফেলে
নিক্লাস বার্লিন

1
দ্রষ্টব্য 2: উপরে ইনস্টল করা বুট সিকোয়েন্স থেকে বোঝা যাচ্ছে যে এসডিবিতে বুট লোডার ব্যবহৃত হয়েছে, আপনি দেখতে পাচ্ছেন যে / বুট / এফি এখনও এসডিএ ( mount | grep efi) থেকে মাউন্ট করা আছে । স্পষ্টতই লিনাক্স প্রথম পার্টিশনটি মাউন্ট করে যার ব্লকিড মেলে /etc/fstab। যদিও এটি কোনও সমস্যা হওয়া উচিত নয়।
নিক্লাস বার্লিন

দ্রষ্টব্য 3: আপনি কি কোনও কারণে আপনার এমডি ডিভাইসগুলিতে বুট না করে শেষ হওয়া উচিত (উদাহরণস্বরূপ উপরের ৩ য় ধাপে বুট পার্টিশন পুনরুদ্ধারকে বিশৃঙ্খলা করে), আমি উবুন্টু লাইভ মিডিয়া ব্যবহার করে বুট করে অ্যাক্সেস পুনরুদ্ধার করতে সক্ষম হয়েছি apt-get install mdadmএবং এর পরে mdadm -A /dev/md0 mdadm -A /dev/md1
নিক্লাস বার্লিন

3
হ্যাঁ। :) এইভাবে আমি আমার সিস্টেমটি কনফিগার করেছি।
নিক্লাস বার্লিন

1
আমাকে ইনস্টল করতে grub-efi-amd64-signedহয়েছিল অন্যথায় সুরক্ষিত বুট সক্ষম করা থাকলে আমি "অবৈধ স্বাক্ষর" এফি ত্রুটি পাচ্ছিলাম।
আলেকজ

0

আমার পরামর্শ দেবিয়ান ওএসের জন্য, তবে আমি মনে করি এটি উবুন্টু এবং অন্যদের জন্যও কার্যকর হবে।

কোনও সমস্যা সমাধানের একটি সম্ভাব্য উপায় যা অনেকগুলি মাদারবোর্ডগুলি UEFI এন্ট্রিগুলি সঠিকভাবে পরিচালনা না করে (ডাবিয়ান বুট করে না যদিও আপনি সঠিক প্রবেশিকাটি তৈরি করেছেন efibootmgr -c -g -d /dev/sda -p 1 -w -L "debian" -l /EFI/debian/grubx64.efi, ইউইএফআই বিআইওএস একটি "ডিবিয়ান" বুটযোগ্য ডিস্ক দেখায় তবে এটি এটি থেকে বুট হবে না) ), পরিবর্তে জেনেরিক এন্ট্রি ব্যবহার করা হয় /boot/efi/EFI/boot/bootx4.efi

উদাহরণস্বরূপ Asus Z87C পছন্দ করে না /EFI/debian/grubx64.efi

সুতরাং, আপনি EFI ভাগ আটকানো যদি /dev/sda1করতে /boot/efiপথ:

mkdir /boot/efi/EFI/boot
cp /boot/efi/EFI/debian/grubx64.efi /boot/efi/EFI/boot/bootx4.efi

তারপরে পুনরায় বুট করুন।

ইউইএফআই বিআইওএস একটি "ইউইএফআই ওএস" জেনেরিক ডিস্ক এবং ইফিবুটমগ্রার দ্বারা পূর্বে নির্মিত অন্য কোনও এন্ট্রি দেখতে পাবে, তবে এটি কোনও সমস্যা ছাড়াই "ইউইএফআই ওএস" জেনেরিক থেকে বুট হবে।

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