এই আর্টিকেলে আমরা দেখাব কীভাবে Linux Ubuntu/Mint/Kali-রানিং কম্পিউটার বুট না হওয়া বা initramfs ইনিশিয়ালাইজেশনের সময় busybox প্রম্পটে যাওয়া সমস্যা সমাধান করতে হয়। ব্যবহারকারী শুধু initramfs কমান্ড প্রম্পট অ্যাক্সেস এবং ব্যবহার করতে পারেন।
Initramfs হলো RAM-এ tmpfs-ভিত্তিক প্রাথমিক ফাইল সিস্টেম যা আলাদা কোনো ব্লক ডিভাইস ব্যবহার করে না। initrd-এর মত, এতে রুট ফাইল সিস্টেমে অবস্থিত init কল করার আগে ফাইল সিস্টেম মাউন্ট করার জন্য টুলস এবং স্ক্রিপ্ট থাকে।
লিনাক্সে ভাঙা Ext4 সুপারব্লক রিপেয়ার
যদি Ubuntu initramfs ইনিশিয়ালাইজেশনের সময় busybox-এ ক্র্যাশ করে, তবে ডিস্কে একটি ড্যামেজড সুপারব্লক থাকতে পারে।
লিনাক্সে বেশ কিছু সুপারব্লক কপি রাখা থাকে। এই সমস্যা হলে সিস্টেম রিকভার করতে, আপনাকে রেসকিউ ইমেজ/ডিস্ক/Live CD থেকে বুট করতে হবে এবং টার্মিনাল প্রম্পট চালাতে হবে। বুট হওয়ার পর, টার্মিনালে নিচের কমান্ডটি দিন:
# sudo fdisk -l|grep Linux|grep -Ev 'swap'
কমান্ডটি আপনার ভলিউম সম্পর্কে তথ্য রিটার্ন করবে:
/dev/vda2 4096 83884031 83879936 40G Linux filesystem
ভলিউমের নাম মনে রাখুন এবং নিচের কমান্ডে এটি নির্দিষ্ট করুন:
# sudo dumpe2fs /dev/vda2 | grep superblock
কমান্ডটি ব্যাকআপ সুপারব্লকগুলোর তালিকা দেখাবে:
আমরা دوم নম্বর ব্যাকআপ সুপারব্লক ব্যবহার করব ড্যামেজড টিকে রিপ্লেস করতে (আপনি প্রাইমারি ছাড়া যেকোনো সুপারব্লক ব্যবহার করতে পারেন)। ব্যাকআপ সুপারব্লক ব্যবহার করে ডিস্ক চেক করুন:
# sudo fsck -b 98304 /dev/vda2 -y
আপনি এই আউটপুট পেলে:
fsck from util-linux 2.31.1 e2fsck 1.44.1 (24-Mar-2018) /dev/vda2 is mounted. e2fsck: Cannot continue, aborting
ভলিউমটি আনমাউন্ট করুন:
# umount /dev/vda2
সুপারব্লক সফলভাবে রিপ্লেস होने পর, আপনি এভাবে একটি মেসেজ পাবেন:
fsck from util-linux 2.31.1 e2fsck 1.44.1 (24-Mar-2018) /dev/vda2 was not cleanly unmounted, check forced. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong for group #231 (32254, counted=32253). Fix? yes Free blocks count wrong for group #352 (32254, counted=32248). Fix? yes Free blocks count wrong for group #358 (32254, counted=27774). Fix? yes ......... /dev/vda2: ***** FILE SYSTEM WAS MODIFIED ***** /dev/vda2: 85986/905464576 files (0.2% non-contiguous), 3904682/905464576 blocks
তারপর বুট মিডিয়া আনমাউন্ট করুন এবং আপনার কম্পিউটার রিস্টার্ট করুন। সব কিছু ঠিকমতো কাজ করা উচিত।
Fsck বুট এরর: Unexpected Inconsistency
Initramfs (BusyBox) ইস্যুর দ্বিতীয় ভারিয়েন্টে টার্মিনাল উইন্ডোতে নিচের মেসেজটি থাকে:
/dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY The root filesystem on /dev/sda1 requires a manual fsck.
আপনি যদি এটি না দেখেন, তবে টার্মিনাল উইন্ডোতে (initramfs) exit লিখে এন্টার চাপুন। এররটি এটা করার পর প্রদর্শিত হতে পারে...
মেসেজটি দেখাবে কোন ভলিউম ম্যানুয়াল ডিস্ক চেক চাই। Initramfs প্রম্পটে নিচের কমান্ডটি চালান:
# fsck /dev/sda1 -y
ডিস্ক চেক শেষ হওয়ার পর, আপনার কম্পিউটার রিস্টার্ট করুন এবং নিশ্চিত করুন যে Linux সঠিকভাবে বুট হচ্ছে।
Alert! /dev/volume Does Not Exist
Fstab সমস্যা
লিনাক্স হোস্ট বুট করার সময় আপনি নিচের এররটি দেখতে পারেন:
ALERT! /dev/sda1 does not exist. Dropping to a shell.
আপনি mogelijk আপনার লিনাক্স mới ইনস্টল করেছেন বা আপনার হোস্টে কিছু fstab সমস্যা আছে। সবচেয়ে বেশি সমস্যা হয় যখন একটি সিস্টেম USB ড্রাইভ থেকে ইনস্টল করা হয়। সিস্টেম যেকোনো ভলিউমের এরর দেখাতে পারে। প্রথম কেসের মত, আমাদের রেসকিউ/বুট লিনাক্স মিডিয়া থেকে বুট করতে হবে এবং কিছু অ্যাকশন নিতে হবে। এই কমান্ড ব্যবহার করে ডিস্ক UUID চেক করুন:
# sudo blkid
সিস্টেম এভাবে কিছু রিটার্ন করবে:
/dev/sda2: UUID="36cce3d5-cbdb-46f4-adbf-3f9aaa01d729" TYPE="ext4" PARTUUID="fea4dab1-4e12-4327-85c6-76ade18f64e1"
এখানে আমরা দেখি সিস্টেম sda2 থেকে বুট হওয়া উচিত, কিন্তু আসলে এটি sda1 থেকে বুট করার চেষ্টা করছে।
ভলিউমটি যেকোনো ডিরেক্টরিতে মাউন্ট করুন, উদাহরণস্বরূপ:
# sudo mount /dev/sda2 /mnt
যখন আপনি /mnt ডিরেক্টরিতে /dev/sda2 দেখতে পান, তখন সেখানে /etc/fstab ফাইলটি খুঁজে বের করুন এবং /dev/sda1 ধারণকারী লাইনটি নিচের মত পরিবর্তন করুন:
UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 / ext4 errors=remount-rw 0 1
ফাইলটি সংরক্ষণ করুন। /mnt থেকে ভলিউমটি আনমাউন্ট করুন এবং রিবুট করুন। যদি সমস্যাটি ভুল ভলিউম নামের সাথে সম্পর্কিত হয়, তবে সার্ভার বুট হবে।
এছাড়া, আপনি এই সমস্যাটি ইমারজেন্সি মোডে বুট করে সমাধান করতে পারেন। রুট ডিরেক্টরি রিড/রাইট হিসেবে রিমাউন্ট করুন:
# sudo mount -o remount,rw /
তারপর fstab পরিবর্তন করুন এবং সার্ভার রিস্টার্ট করুন।
হার্ডওয়্যার সমস্যা
কিছু মাদারবোর্ডে, SATA পোর্টগুলো র্যান্ডম নম্বর পেতে পারে। এটি পূর্বের সেকশনে বর্ণিত এররটিও হতে পারে। এটি ফিক্স করতে, আপনাকে গ্রাব বুটলোডার এডিট করতে হবে।
ইমারজেন্সি মোডে বা Live CD থেকে বুট করুন এবং /boot/grub/grub.cfg ফাইলটি এডিট করুন।
বুট ভলিউম নির্ধারণকারী লাইনটি, উদাহরণস্বরূপ:
Linux /boot/vmlinuz-4.15.0-70-generic root=/dev/sda1 rw quiet elevator=noop fsck.repair=yes
ডিস্কের পথকে এর UUID-দ্বারা প্রতিস্থাপন করুন:
Linux /boot/vmlinuz-4.15.0-70-generic root=UUID=36cce3d5-cbdb-46f4-adbf-3f9aaa01d729 ro quiet elevator=noop fsck.repair=yes