আজ আমি আমার সাম্প্রতিক উইন্ডোজ-টু-লিনাক্স টিউটোরিয়ালের সিরিজ থেকে একটু আলাদা একটি বিষয় নিয়ে আলোচনা করব। আগের টিউটোরিয়ালগুলোতে আমি দেখিয়েছিলাম কিভাবে উইন্ডোজের জন্য ডিজাইন করা প্রোগ্রামগুলো WINE-এর মতো ফ্রেমওয়ার্ক ব্যবহার করে লিনাক্সে ইনস্টল, কনফিগার এবং ব্যবহার করা যায়। আজ আমরা আলোচনা করব ডিস্ক ও ড্রাইভ ম্যানেজমেন্টের sopra একটি গুরুত্বপূর্ণ বিষয়।
এই গাইড এককভাবে কাজ করে না। এখানে কিছু কঠোর নিয়ম মেনে চলতে হবে। প্রথমত, যদি আপনার ডিস্ক বা ড্রাইভ ম্যানেজমেন্ট, ফাইল সিস্টেম ইত্যাদি সম্পর্কে কোনো ধারণা না থাকে, তবে এই আর্টিকেল আপনার জন্য নয়। আপনাকে এই বেসিক প্রিন্সিপলগুলোর একটি মৌলিক ভিত্তি থাকতে হবে। বাস্তবভাবে বলতে গেলে, এটি নার্ডদের জন্য লেখা, যদিও যারা লিনাক্সে এখনও খুব কম প্র্যাক্টিক্যাল অভিজ্ঞতা রাখেন।
এটি বললেও, নিচের আমার কিছু আর্টিকেলগুলো আপনি আগে পড়ে নিতে পারেন:
- GParted পার্টিশনিং সফটওয়্যার টিউটোরিয়াল
- উইন্ডোজ নতুনদের জন্য চূড়ান্ত লিনাক্স গাইড
এখন যেহেতু আমরা টেকনিক্যাল টার্মিনোলজি এবং বিবরণ জানি, একটি পরিস্থিতি নিয়ে আলোচনা করি। ধরুন আপনার একটি উইন্ডোজ মেশিন আছে যাতে দুটি ফিজিক্যাল ডিস্ক এবং মোট পাঁচটি ডিস্ক পার্টিশন আছে। লেআউটটি নিম্নরূপ:
- C:\ ড্রাইভ - উইন্ডোজ ও কোর অপারেটিং সিস্টেম ফাইল, প্রোগ্রাম ফাইল, ইউজার ডেটা।
- D:\ ড্রাইভ - গেম ইনস্টলেশন (স্টিমসহ)।
- E:\ ড্রাইভ - ইউজারের ডেটা (ফাইল, সিনেমা, গান, ডকুমেন্ট ইত্যাদি) যা My Documents-এ সংরক্ষিত নয়।
- F:\ ড্রাইভ (দ্বিতীয় ডিস্কে) - ব্যাকআপের জন্য ব্যবহার করা হয়; এখানে ইউজার ডেটা সপ্তাহে একবার কপি করা হয়।
- H:\ ড্রাইভ (দ্বিতীয় ডিস্কে) - কম গুরুত্বপূর্ণ জিনিসের জন্য (ডাউনলোড, কাঁচা ভিডিও ইত্যাদি)।
এখন ধরুন, এই ডিস্ক সাজানোর মালিক লিনাক্সে যেতে চান। তাহলে তিনি করবেন:
তারা তাদের ডিস্কগুলো রি-পার্টিশন করবেন - নির্দিষ্ট করে H:\ ড্রাইভ স্মল করবেন, এবং খালি স্পেসে কিছু নতুন পার্টিশন তৈরি করবেন। তারপর সেখানে একটি লিনাক্স ডিস্ট্রিবিউশন ইনস্টল করবেন। এখন তাদের একটি ডুয়াল-বুট সিস্টেম হবে, এবং কম্পিউটার চালু বা রিস্টার্ট করার সময় একটি মেনু দেখাবে যেখান থেকে লিনাক্স বা উইন্ডোজ পরিবেশ বেছে নেওয়া যাবে।

আমি আমার বিভিন্ন ডুয়াল-বুট আর্টিকেলগুলিতে এই এবং অনুরূপ পরিস্থিতিগুলো আউটলাইন করেছিলাম, যেমন উপরে লিংক করা উইন্ডোজ ৭ & উবুন্টু এবং উইন্ডোজ ৭ & সেন্টওএস গাইডগুলো। এটি আপনাকে একই ধরনের অ্যাডভেঞ্চারের জন্য একটি ভালো রেফারেন্স পয়েন্ট দেবে, এবং লিনাক্সে ডিস্ক ম্যানেজমেন্টের প্রাথমিক পার্থক্যগুলোর একটি ধারণা দেবে।
এখন ইউজারের কাছে দুটি অপারেটিং সিস্টেমওয়ালা একটি সিস্টেম আছে। কিন্তু একটি সমস্যা আছে। অধিকাংশ ডেটা এখনও উইন্ডোজে থাকে বা উইন্ডোজ ড্রাইভগুলোতে (NTFS ফাইল সিস্টেমে ফরম্যাট করা) সংরক্ষিত/রাখা হয়। এখানে কয়েকটি প্রশ্ন উঠে:
- ইউজার কি উইন্ডোজ ডেটা অ্যাক্সেস করতে পারবেন?
- ইউজার কি উইন্ডোজ ডেটা মডিফাই করতে পারবেন?
- ইউজার কি ডেটা উইন্ডোজ ড্রাইভ থেকে লিনাক্সের নেটিভ ফাইল সিস্টেমवाले পার্টিশনে মাইগ্রেট করতে পারবেন?
- ইউজার কি চাইলে NTFS ফাইল সিস্টেমকে লিনাক্সের নেটিভ ফাইল সিস্টেমে কনভার্ট করতে পারবেন?
- লিনাক্স NTFS ফাইল সিস্টেম বড় সহজেই পড়ে। অধিকাংশ ডিস্ট্রিবিউশন এটি নেটিভলি সাপোর্ট করে।
- একইভাবে, লিনাক্স NTFS ফাইল সিস্টেমে রাইটও করতে পারে। তবে সব ডিস্ট্রিবিউশনে এটি বক্সের বাইরে থেকে আসে না। এর সমাধান হল NTFS-3g ইউটিলিটি ইনস্টল করা, যা প্রয়োজনীয় ফাংশনালিটি দেয়। উদাহরণস্বরূপ, রেড হ্যাট ডিস্ট্রিবিউশনগুলোর মতো CentOS, AlmaLinux বা Rocky Linux-এ:
sudo dnf install ntfs-3g ntfsprogs
- ইউজার ডেটা মাইগ্রেট করতে পারেন, কিন্তু উপরের পরিস্থিতিতে নতুন তৈরি লিনাক্স পার্টিশন(গুলোতে) সকল উইন্ডোজ জিনিস (ডেটা, ব্যাকআপ, অন্যান্য তথ্য) রাখার পর্যাপ্ত জায়গা নাও থাকতে পারে।
- ফাইল সিস্টেম কনভার্সন একটি রিস্কি অপারেশন যা ডেটা লস করতে পারে। এটি কখনোই একটি সম্পূর্ণ, যাচাইযোগ্য ডেটা ব্যাকআপ ছাড়া করা উচিত নয়। কিন্তু ব্যাকআপ থাকলে, পার্টিশনগুলোকে নেটিভ ফাইল সিস্টেমে ফরম্যাট করে ডেটা কপি করা আরও ভালো।
ডিস্ক স্পেসের অভাব এবং/অথবা সহজ ডেটা মাইগ্রেশন পথের সমাধান হল উইন্ডোজ ডেটাকে লিনাক্স সিস্টেমের ভিতরে এমনভাবে উপস্থাপন করা যাতে সেটি সহজে বোঝা যায় এবং প্র্যাক্টিক্যাল ডেটা ব্যাকআপ সম্ভব হয়। ব্যাখ্যা করি:
লিনাক্সে, সব পাথ রুট (/) এ রিজলভ করে। উদাহরণস্বরূপ, /home/igor "igor" নামের ইউজারের হোম ডিরেক্টরির মাউন্ট পয়েন্ট। কিন্তু সেই ডিরেক্টরির ফিজিক্যাল ম্যাপিং কোথাও হতে পারে। সেটি আলাদা একটি পার্টিশন, আলাদা একটি ডিস্ক, এমনকি নেটওয়ার্কের মাধ্যমে অন্য একটি সিস্টেমও হতে পারে। উদাহরণস্বরূপ:
- রুট ফাইল সিস্টেম (/) হল /dev/sda1 (প্রথম ডিস্কের প্রথম পার্টিশন)-এর মাউন্ট পয়েন্ট।
- /home/igor একটি ডিরেক্টরি, আলাদা মাউন্ট পয়েন্ট নয়। ডেটা /dev/sda1-এ (একই ডিস্কে) থাকে।
- বিকল্পভাবে, /home/igor পাথ /dev/sda2 বা /dev/sdc7 বা এমনকি NFS, CIFS বা Samba শেয়ারের तरफ রিজলভ করতে পারে।
এটি মানে যদি ইউজার উইন্ডোজ ড্রাইভগুলো মাউন্ট করেন, সেগুলো লিনাক্সে একক রুট ফাইল সিস্টেমের অংশ হিসেবে উপস্থিত হবে, এবং অন্যান্য লোকেশন বা পাথ থেকে সেগুলো আলাদা করা সম্ভবত সহজ হবে না। আবার উদাহরণস্বরূপ:
অधিকাংশ লিনাক্স সিস্টেম রিমুভেবল, এক্সটার্নাল বা নন-লিনাক্স ডিভাইস/পার্টিশনগুলো /run/media বা /media-তে মাউন্ট করে। তাই যদি আপনি এই লোকেশনগুলোতে দুটি ডিরেক্টরি দেখেন, তাদের নাম যেন যেন হোক, আপনি সেগুলো সহজে আলাদা করতে পারবেন না। একটি হতে পারে ইন্টারনাল উইন্ডোজ NTFS-ফরম্যাটেড পার্টিশন, আরেকটি হতে পারে FAT32-ফরম্যাটেড USB ড্রাইভ।
এই সমস্যাটি বাইপাস করার জন্য আমি নিচের পদ্ধতি ব্যবহার করি:
- রুটের অধীনে একটি নতুন টপ-লেভেল ডিরেক্টরি তৈরি করি যেটির নাম drives (/drives)।
- এর ভিতরে উইন্ডোজ ড্রাইভের জন্য মাউন্ট পয়েন্ট হিসেবে কাজ করবে এমন ডিরেক্টরি তৈরি করি, লেটার ব্যবহার করে আইডেন্টিফায়ার হিসেবে। উদাহরণস্বরূপ, /drives/C হবে C:\ ড্রাইভের মাউন্ট পয়েন্ট, /drives/E হবে E:\ ড্রাইভের মাউন্ট পয়েন্ট, ইত্যাদি।
- /etc/fstab-এ উইন্ডোজ ড্রাইভের জন্য পার্মানেন্ট মাউন্ট রুল তৈরি করি (এ ব্যাপারে আপেক্ষা করুন)। এর মানে সিস্টেম বুট হলে উইন্ডোজ ড্রাইভগুলো রাইটেবল ডিভাইস হিসেবে মাউন্ট হবে এবং টপ-লেভেল /drives লোকেশনের অধীনে ডিরেক্টরি হিসেবে উপস্থিত হবে।
এই পদ্ধতির অনেক উপযোগী সুবিধা আছে:
- লিনাক্স-ওনলি বা পিউর লিনাক্স পাথ এবং উইন্ডোজ পাথের মধ্যে স্পষ্ট এবং দৃশ্যমান পৃথকীকরণ সম্ভব করে।
- সকল নন-লিনাক্স ডিভাইস/পার্টিশন জেনেরিক ডিরেক্টরির অধীনে মিশ্রিত হয় না।
- ব্যাকআপ স্ক্রিপ্ট চালালে সবকुछ কপি বা ব্যাকআপ নেয় না, বরং শুধু যা দরকার সেটি নেয়। আপনি যদি আপনার লিনাক্স সিস্টেমের ফুল ব্যাকআপ নেন, এবং অন্যান্য ফাইল সিস্টেম ও ড্রাইভ মাউন্ট করা থাকে, তবে আপনি অবশ্যই সেগুলো ব্যাকআপে অন্তর্ভুক্ত করতে চাইবেন না, এবং প্রতিটি "অজানা" পাথের জন্য হিসাব রাখতে চাইবেন না।
আমাদের পূর্বের উদাহরণ অনুসরণ করে, প্রথম ধাপ হল বের করা যে লিনাক্স ইন্টারনাল হার্ড ডিস্কগুলোকে কীভাবে "দেখে" এবং উইন্ডোজ ড্রাইভগুলোকে কীভাবে আইডেন্টিফাই করে। আবারও বলতে হচ্ছে, এখানে কিছু এক্সপার্টাইজ দরকার। আপনি fdisk-এর মতো কমান্ড-লাইন টুল ব্যবহার করে ডিভাইস এবং তাদের পার্টিশনের তালিকা বের করতে পারেন। ধরুন নিম্নরূপ:
- /dev/sda1 - C:\ ড্রাইভ
- /dev/sda2 - D:\ ড্রাইভ
- /dev/sda3 - E:\ ড্রাইভ
- /dev/sdb1 - F:\ ড্রাইভ
- /dev/sdb2 - H:\ ড্রাইভ
- /dev/sdb3 - লিনাক্স রুট (/)
- /dev/sdb4 - লিনাক্স সোয়াপ
- /dev/sdb5 - লিনাক্স হোম (/home)
/drives টপ-লেভেল পথ এবং এর নিচের ডিরেক্টরি তৈরি করুন (শুধু উইন্ডোজ ড্রাইভের জন্য):
sudo mkdir /drives
sudo mkdir /drives/C
sudo mkdir /drives/D
...
এখন, রুট বা sudo হিসেবে, /etc/fstab ফাইলের একটি ব্যাকআপ তৈরি করুন এবং তারপর একটি টেক্স्ट এডিটর (যেমন nano) দিয়ে এডিট করুন:
sudo cp /etc/fstab /home/"your user"/fstab-backup
sudo nano /etc/fstab
টেক্স্ট এডিটরে আপনার উইন্ডোজ ড্রাইভের মাউন্ট পয়েন্ট যোগ করুন।
/dev/sda1 /drives/C ntfs-3g defaults,locale=utf8 0 0
/dev/sda2 /drives/D ntfs-3g defaults,locale=utf8 0 0
...
এখানে কী আছে?
- আমরা মাউন্ট করার জন্য আসল ডিভাইস/পার্টিশন নির্দিষ্ট করি।
- মাউন্ট পয়েন্ট নির্দিষ্ট করি।
- ফাইল সিস্টেম নির্দিষ্ট করি - এই কেসে, আমরা ntfs-3g ফাইল সিস্টেম ড্রাইভার ব্যবহার করি (এটি আমাদের রিড/রাইট এক্সেস দেয়)।
- মাউন্ট অপশন নির্দিষ্ট করি - defaults এবং UTF8 এনকোডিং দিয়ে সহজ রাখি।
- শেষ দুটি ফিল্ড (dump এবং fsck) ০ সেট করি, যাতে সেগুলো ক্লাসিক লিনাক্স অপারেশন থেকে বাদ পড়ে।
আমার একটি সিস্টেম থেকে একটি আসল উদাহরণ:
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p5 during installation
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=7f4087e7-e572-44fd-a4a1-7489099937a0 / ext4 errors=remount-ro 0 1
UUID=C05A-951D /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
/dev/nvme0n1p3 /drives/C ntfs-3g defaults,locale=utf8 0 0
প্রথম তিনটি আনকমেন্টেড এন্ট্রি লিনাক্স ফাইল সিস্টেমের মাউন্ট এন্ট্রি, যার মধ্যে রুট (/), /boot/efi (যেটি UEFI সিস্টেমের জন্য আবশ্যক, এটি VFAT ফাইল সিস্টেমও দেখাচ্ছে), এবং একটি সোয়াপফাইল (সোয়াপ পার্টিশনের পরিবর্তে)।
চতুর্থ এন্ট্রি হল একটি উইন্ডোজ ড্রাইভের যোগফল। দয়া করে লক্ষ্য করুন যে ডিভাইস আইডেন্টিফায়ার /dev/sdaXY নয়, বরং /dev/nvmeXnYp3। কারণ এই সিস্টেমে একটি NVMe হার্ড ডিস্ক আছে, এবং লিনাক্স সিস্টেম এটি IDE/SATA/SCSI ডিভাইস থেকে আলাদাভাবে আইডেন্টিফাই করে। কিন্তু সকল প্র্যাক্টিক্যাল উদ্দেশ্যে, নোটেশনটি একই।
এখানে প্রথম (০) NVMe বাস, প্রথম (১) ডিভাইস, তৃতীয় (৩) পার্টিশন। আবার বলছি, ডিভাইস এবং পার্টিশনের নোটেশন বোঝার জন্য আমার হার্ড ডিস্ক ম্যানেজমেন্ট গাইডগুলো এবং GRUB টিউটোরিয়াল দেখুন। তাই উপরের উদাহরণে, আমরা আমাদের উইন্ডোজ পার্টিশনকে, কার্যকরভাবে NVMe ডিস্কের তৃতীয় পার্টিশনকে, /drives/C-তে মাউন্ট করছি।
ইফেক্ট देखने রিবুট করার দরকার নেই, শুধু সবকিছু রি-মাউন্ট করুন:
sudo mount -a
এখন, আপনার উইন্ডোজ ড্রাইভগুলো সংশ্লিষ্ট পথে মাউন্ট হবে, এবং আপনি ডেটা দেখতে পারবেন। পরবর্তী ধাপ হল মাউন্ট করা ডেটাকে ব্যবহার এবং অ্যাক্সেস করা সহজ করা।
আপনি যদি GUI (কমান্ড লাইন নয়) থেকে ডেটা ব্যবহার করতে চান, তবে নিচের ট্রিকটি করতে পারেন:
- আপনার হোম ডিরেক্টরিতে মাউন্ট করা ড্রাইভগুলোর সিমবলিক লিংক তৈরি করুন।
- আরো নির্দিষ্ট করে, প্রতিটি ড্রাইভ (লেটার) কে একটি অর্থবহ নামওয়ালা ফোল্ডারের সাথে সিমবলিক্যালি লিংক করুন, যেমন উইন্ডোজ ড্রাইভের নাম।
ln -s /drives/C ~/Windows
উপরোক্ত কমান্ড আপনার হোম ডিরেক্টরিতে একটি সিমবলিক লিংক তৈরি করবে। Windows /drives/C-এ ম্যাপ হবে, যা C:\ ড্রাইভের মাউন্ট পয়েন্ট। তাই যখন আপনি আপনার লিনাক্স ফাইল ম্যানেজারে Windows ফোল্ডারে ক্লিক করবেন, তখন উইন্ডোজ ড্রাইভের কন্টেন্ট দেখতে পাবেন।

আপনি একধাপ বেশি যেতে পারেন এবং এই ড্রাইভগুলোর শর্টকাট তৈরি করতে পারেন। উদাহরণস্বরূপ, Plasma ডেস্কটপ এনভায়রনমেন্টে, আপনি সাইডবারে শর্টকাট যোগ করতে পারেন, যাতে Windows /drives/C-এ ম্যাপ হবে, Games /drives/D-এ, Data /drives/E-এ, ইত্যাদি। আপনার পরবর্তী ধাপ হবে সম্ভবত ব্যাকআপ টাস্ক ফ্লোতে যোগ করা, কিন্তু সেটি অন্য একটি টিউটোরিয়ালের বিষয়।
আমার এই টিউটোরিয়াল ডেটা ম্যানেজমেন্টের হলে গ্রেল নন। দূরে থেকে। কিন্তু এটি উইন্ডোজ থেকে লিনাক্সে যাওয়ার সময় মানুষের সম্মুখীন হওয়া সাধারণ সমস্যার কিছু এলিগ্যান্ট সমাধান দেয়। এটি উইন্ডোজ ডেটাকে একটি দৃশ্যমান, ইন্টুইটিভ манেরে উপস্থাপন করার একটি পথ দেয়। এতে কোনো ডেস্ট্রাক্টিভ অপারেশন নেই। এটি সুবিধাজনক ব্যাকআপ এবং ডেটা পৃথকীকরণের অনুমতি দেয়। এবং উইন্ডোজ ওয়ার্কফ্লোর অভ্যস্ত লোকেদের প sicuro সংকেত বা প্রতিষ্ঠিত ওয়ার্কফ্লো কমপ্রোমাইজ না করে নতুন পরিবেশে ধীরে ধীরে অভ্যস্ত হতে সাহায্য করে।
উইন্ডোজ-ওনলি ড্রাইভগুলো তাদের নিজস্ব পথে মাউন্ট করা থাকা, GUI টুলের মাধ্যমে সুবিধাজনক অ্যাক্সেসের জন্য সিমবলিক লিংক, এবং একটি লজিক্যাল ম্যাপিং - এই সব মিলিয়ে আপনার মাইগ্রেশনের জন্য একটি ভালো,-solid ফাউন্ডেশন তৈরি হয়েছে। পরবর্তী ধাপ হল নিশ্চিত করা যে আপনার গুরুত্বপূর্ণ ডেটা ব্যাকআপ নেওয়া হয়েছে। কারণ ব্যাকআপ ছাড়া ডেটা কেবল দুর্ঘটনার انتظار। আমরা পরবর্তী আর্টিকেলগুলিতে সেটি কভার করব, এবং অন্যান্য অনেক প্র্যাক্টিক্যাল দিনদিনের টিপস। এখন কিছুক্ষণ উপরে আউটলাইন করা ডেটা স্কিম সম্পর্কে চিন্তা করুন। এবং অতিরিক্ত প্রোগ্রাম সেটআপ গাইডের জন্য সেটুন থাকুন। শীঘ্রই দেখা হবে।
চিয়ার্স।