Fsarchiver: পার্টিশন ব্যাকআপ ও রিস্টোরের ছোট কিন্তু কার্যকর টুল

Saturday, November 12, 2011

আমাদের বিভিন্ন প্রয়োজনে পার্টিশন ব্যাকআপ করে থাকি। বিশেষ করে ওএস রি-ইন্সটল করার পর বিভিন্ন ড্রাইভার/সফটওয়্যার ইন্সটল করে ওএসকে আগের পর্যায়ে আনতে বেশ সময় লাগে । তবে প্রয়োজনীয় ড্রাইভার/সফটওয়্যার সহ ওএসের ইমেজ ব্যাকআপ নিলে এ সময় অনেকখানি বাঁচানো যায়। এই ব্যাকআপ নেওয়ার কাজে বিভিন্ন সফটওয়্যার ব্যবহার করা হয়। এদের ভেতর অন্যতম হচ্ছে fsarchiver।
fsarchiver হচ্ছে একটি বিশেষ ধরণের সিস্টেম টুল যা কোনো ফাইল-সিস্টেমের content গুলোকে একটি কমপ্রেসড করা আর্কাইভ ফাইলে সেভ করে রাখে। এটি ext3,ext4,btrfs,ntfs(beta পর্যায়ে) ইত্যাদি ফাইল-সিস্টেম সাপোর্ট করে। এর সবচেয়ে

বড় সুবিধা হল

  • ১ আর্কাইভ করা ফাইল-সিস্টেম/পার্টিশন রিস্টোর করতে হলে পার্টিশনের সাইজের উপর নির্ভর করতে হয় না।
    উদাহরণস্বরূপ, আপনি যে পার্টিশনকে ব্যাকআপ করলেন তার পুরো সাইজ হল ১৮ জিবি (ধরলাম ১২জিবি খালি আছে, মানে ৬জিবি ডাটা দিয়ে পূর্ণ) এবং আর্কাইভ করা ফাইলের সাইজ হল ৩জিবি। এখন ৩জিবি আর্কাইভ ফাইলকে রিস্টোর করতে হলে পুরো পার্টিশনের আকার ১৮জিবি না হলেও হবে। শুধুমাত্র আর্কাইভ ফাইল আনকমপ্রেসড হয়ে যতটুকু জায়গা নিতে পারে(৬জিবি), সেটুকু জায়গা হলেই চলবে।
  • ২ এক ফাইল সিস্টেমের পার্টিশন থেকে অন্য ফাইল-সিস্টেমের পার্টিশনে রিস্টোর করতে পারবেন। মানে ext3 থেকে ext4 অথবা তার বিপরীত।
  • ৩ ব্যাকআপ করা আর্কাইভ ফাইলের কনটেন্টগুলো সবসময় checksum করা হয় যাতে ডাটা হারানোর ভয় ন থাকে।
  • ৪ একটি আর্কাইভে একাধিক পার্টিশন/ফাইল-সিস্টেম ব্যাকআপ করা যায়।
  • ৫ পাসওয়ার্ড-প্রটেক্টেড ব্যাকআপ করা যায।
  • ৬ আর্কাইভকে বিভিন্ন সাইজে split করা যায়।

অসুবিধাঃ

  • ১ রিস্টোর করতে লাইভ সিডি অথবা পিসিতে ইন্সটল থাকা অন্য লিনাক্স ডিস্ট্রোর ওপরে নির্ভর করতে হয়।
  • ২ রিস্টোর করার পর গ্রাব রিস্টোর (যদি রুট পার্টিশন হয়) করার প্রয়োজন পড়ে।
grub1/grub legacy রিস্টোর করতে লাইভ সিডি থেকে টার্মিনাল বা কনসোলে লিখুন
1
2
3
4
5
6
7
8
9
sudo grub
 
find /boot/grub/stage1
 
root (hd0,5)
 
setup (hd0)
 
quit
এখানে (hd0,5) কিংবা যে সংখ্যা আসে পরবর্তী ধাপে সে মোতাবেক কাজ করতে হবে।
৩ ব্যাকআপ করা আর্কাইভ ফাইলের কনটেন্টগুলো কোনো টুল দিয়ে দেখা যায় না।

কাজ শুরু করার আগেঃ

কাজ শুরু করার আগে কিছু ব্যাপার বলে নেওয়া উচিৎ। যেহেতু টুলটি পার্টিশন নিয়ে কাজ করে, সেহেতু যে পার্টিশনের উপর কাজ করবেন তা যেন unmounted অবস্থায় থাকে। যদি রুট পার্টিশন হয় তাহলে লাইভ সিডিতে যেখানে fsarchiver ইন্সটল করা থাকে(system rescue cd) তা ব্যবহার করলে ভালো, কিংবা অন্য পার্টিশনে ইন্সটল থাকা ডিস্ট্রো। তবে mounted থাকা অবস্থায় ব্যাকআপ নেওয়া যায়। একে লাইভ ব্যাকআপ বলে। তবে এই অবস্থায় লক্ষ্য রাখতে হবে কাজ করার সময় ঐ পার্টিশনে কোনো কিছু রিড-রাইট না হয়।
রুট পার্টিশন ছাড়া অন্য পার্টিশনের ব্যাকআপ আপনার বর্তমান লগ-ইন থাকা ওএস থেকেই নিতে পারবেন। শুধু খেয়াল রাখবেন যার ব্যাকআপ নিচ্ছেন তা যেন আনমাউন্টেড থাকে। রিস্টোর করার ক্ষেত্রে একই কথা প্রয়োজ্য।
এখানে আমি উবুন্টুতে fsarchiver ব্যবহার করছি। System-rescue-CD তে কাজ করলে সম্ভবত su – কমান্ড দিয়ে রুট একাউন্টে লগ িন করতে হবে।
কাজ শুরু করার আগে এই টুলের জন্য য়েসব কমান্ড সাধারণত লাগবে সেগুলো হল:
savefs ফাইল-সিস্টেম সেভ করার কমান্ড
restfs ফাইল-সিস্টেম রিস্টোর করার কমান্ড
archinfo আর্কাইভের তথ্য জানতে
-A mounted থাকা কোনো ফাইল-সিস্টেম ব্যাকআপ করতে
-o কোনো আর্কাইভ ওভারাইট করতে
-j প্রসেসর এর একাধিক core/thread থাকলে তা কাজে লাগানোর জন্য।
-v কি কি ফাইল/ফোল্ডার ব্যাকআপ হচ্ছে তা টার্মিনালে দেখানো হয়।
-d এই অপশনটি ব্যবহার করলে /var/log ডিরীক্টরিতে একটি লগ ফাইল তৈরি হয়।

যেভাবে কাজ করবেনঃ

প্রথমে জানতে হবে কোন পার্টিশনের উপর কাজ করতে হবে। টার্মিনালে দেখতে হলে লিখুন
1
sudo fsarchiver probe simple
একটু পর আপনি পার্টিশন দেখতে পাবেন।
[=====DEVICE=====] [==FILESYS==] [======LABEL======] [====SIZE====] [MAJ] [MIN]
[sda1 ] [ntfs ] [] [ 39.06 GB] [ 8] [ 1]
[sda3 ] [ntfs ] [xp ] [ 114.20 GB] [ 8] [ 3]
[sda5 ] [ntfs ] [Audio Video ] [ 58.59 GB] [ 8] [ 5]
[sda6 ] [ntfs ] [Software & Others] [ 34.18 GB] [ 8] [ 6]
[sda7 ] [ntfs ] [Data Backup ] [ 48.83 GB] [ 8] [ 7]
[sda8 ] [ext4 ] [] [ 54.69 GB] [ 8] [ 8]
[sda9 ] [swap ] [] [ 1.00 GB] [ 8] [ 9]
[sda10 ] [ext4 ] [] [ 48.83 GB] [ 8] [ 10]
[sda11 ] [ntfs ] [extra 2 ] [ 48.83 GB] [ 8] [ 11]
[sdb1 ] [ntfs ] [System Reserved ] [ 100.00 MB] [ 8] [ 17]
[sdb2 ] [ntfs ] [] [ 49.90 GB] [ 8] [ 18]
[sdb5 ] [ntfs ] [Data 2 ] [ 140.00 GB] [ 8] [ 21]
[sdb6 ] [ntfs ] [Backup ] [ 50.00 GB] [ 8] [ 22]
[sdb7 ] [ext4 ] [] [ 18.52 GB] [ 8] [ 23]
[sdb8 ] [swap ] [] [ 2.01 GB] [ 8] [ 24]
[sdb9 ] [ext4 ] [] [ 31.48 GB] [ 8] [ 25]
আমি এখানে /dev/sdb7 ও /dev/sdb6 মানে Backup নিয়ে কাজ করব। এখানে /dev/sdb7 হচ্ছে মিন্টের রুট পার্টিশন।
যেহেতু /dev/sdb7 ও /dev/sdb6 নিয়ে কাজ করছি, সেহেতু কাজ করার সময় এই পার্টিশনগুলো যেন unmounted থাকে সেদিকে খেয়াল রাখবেন। রিস্টোর করার ক্ষেত্রে একই কথা প্রয়োজ্য।
প্রথম হার্ডডিস্কে ইন্সটল থাকা উবুন্টু(/dev/sda8) থেকে এই কাজগুলো করছি। আপনার পিসিতে একাধিক ডিস্ট্রো ইন্সটল করা না থাকলে System-rescue CD ব্যবহার করতে পারেন।
তাহলে এবার মূল কাজ শুরু করা যাক।

যদি একটি ফাইল-সিস্টেম(/dev/sdb7) ব্যাকআপ করতে চানঃ

মনে করি ব্যাকআপ ফাইলটি আমরা /media/xp তে রাখব আর ব্যাকআপের নাম হল mint-rootfs.fsa এক্ষেত্রে নিচের কমান্ডটি টার্মিনালে লিখতে হবে।
1
sudo fsarchiver -o -v -d savefs /media/xp mint-rootfs.fsa /dev/sdb7
যদি আপনাট প্রসেসরে একাধিক core থাকে তাহলে আপনি -j অপশনটি ব্যবহার করতে পারেন। ডুয়াল=কোরের ক্ষেত্রে 2 আর কোয়াড-কোরের ক্ষেত্রে (1-4) ব্যবহার করতে পারেন। যদি তিনটি কোর ব্যবহার করতে চান তাহলে হবে এরকম
1
2
3
4
5
6
7
sudo fsarchiver -j3 -o -v -d savefs /media/xp/mint-rootfs.fsa /dev/sdb7
 
1

একটি ফাইল-সিস্টেম রিস্টোর করার নিয়মঃ

1
 
sudo fsarchiver -j3 -o -v -d restfs /media/xp/mint-rootfs.fsa id=0, dest=/dev/sdb7
এখানে id=0 হচ্ছে প্রথম ফাইল-সিস্টেম আর dest অপশনে যে পার্টিশনে রিস্টোর করতে চান তার লোকেশন দিতে হবে।
উল্লেখ্য রুট পার্টিশনকে রিস্টোর করতে হলে আগের পার্টিশনেই রিস্টোর করা ভালো।. তবে ডাটার ক্ষেত্রে ইচ্ছে করলে অন্য পার্টিশনে রিস্টোর করতে পারেন।

একই সাথে ২ টি ফাইল-সিস্টেম ব্যাকআপ (/dev/sdb7, /dev/sdb6) নেওয়াঃ

কমান্ডটি হবে এরকম:
1
sudo fsarchiver -j3 -o -v -d savefs /media/xp/multiple-filesystem.fsa /dev/sdb7 /dev/sdb6
এখানে আমি একই সাথে /dev/sdb7 ও /dev/sdb6 এর ব্যাকআপ নিলাম।

একই সাথে ২ টি ফাইল-সিস্টেম রিস্টোর(/dev/sdb7, /dev/sdb6) করাঃ

এই কাজটিও একটি কমান্ডে করা যায়। টার্মিনালে লিখতে হবে-
1
sudo fsarchiver -j3 -o -v -d restfs /media/xp/multiple-filesystem.fsa id=0, dest=/dev/sdb7 id=1, dest=/dev/sdb6
এখানে id=0 হচ্ছে প্রথম পার্টিশন মানে /dev/sdb7 আর id=1 হচ্ছে দ্বিতীয় পার্টিশন মানে /dev/sdb6।

লাইভ ব্যাকআপ বা রানিং সিস্টেম থেকে ব্যাকআপ নেওয়াঃ

রানিং সিস্টেম থেকে ব্যাকআপ নেওয়ার সময় সাবধানতা অবলম্বন করা উচিৎ। রিকভারি বা পুরোপুরি কনসোল মোডে গিয়ে এই কাজটি করা উচিৎ। উবুন্টুতে রিকভারি মোডে যেতে হলে গ্রাব থেকে recovery mode অপশনটি সিলেক্ট করুন। এরপর আপনার নাম ও পাসওয়ার্ড দিয়ে লগ-ইন করুন। এরপর startx কমান্ড দিয়ে GUI এ প্রবেশ করে যেখানে ব্যাকআপ ফাইলটি রাখবেন তা মাউন্ট ( মাউন্ট করার কাজটি কমান্ড দিয়েও করা যায়) করে লগ-আউট করে নিন। এতে আপনি আবার কনসোল মোডে ফিরে আসবেন। আমার পিসিতে উবুন্টু /dev/sda8 পার্টিশন।
1
sudo fsarchiver -j3 -o -v -A savefs /media/xp/ubuntu-rootfs.fsa /dev/sda8
আর্কাইভ করা ফাইল সম্পর্কে তথ্য জানতে archinfo অপশন ব্যবহার করতে হবে।

0 comments:

Post a Comment