আমার /usr
ফোল্ডারটি একটি নতুন পার্টিশনে স্থানান্তরিত হওয়া দরকার। সামগ্রীগুলি মোছা না করে আমি কীভাবে এটি করতে পারি?
উবুন্টু চলার সময় এটি করা যেতে পারে, বা এর জন্য আমার লাইভসিডি ব্যবহার করা দরকার?
আমার /usr
ফোল্ডারটি একটি নতুন পার্টিশনে স্থানান্তরিত হওয়া দরকার। সামগ্রীগুলি মোছা না করে আমি কীভাবে এটি করতে পারি?
উবুন্টু চলার সময় এটি করা যেতে পারে, বা এর জন্য আমার লাইভসিডি ব্যবহার করা দরকার?
উত্তর:
লাইভ সিডি ব্যবহার করা সবচেয়ে নিরাপদ হবে তবে আপনি এটি করতে পারেন:
/usr
আপনি যখন এটি করছেন তখন বিষয়বস্তুগুলি পরিবর্তন হয় না।/etc/fstab
যাতে /usr
পরবর্তী পুনরায় বুট করা হবেপ্রতিটি পদক্ষেপের বিশদ জন্য নীচে দেখুন।
নোট করুন যে /usr
চলমান অবস্থায় আপনি নতুন পার্টিশনটি মাউন্ট করতে পারবেন না কারণ এতে প্রচুর ফাইল /usr
খোলা থাকবে।
আমি ব্যবহার করব cp -a
। -a
সংরক্ষণাগার বিকল্প। থেকে man পৃষ্ঠা :
-a, --archive
same as -dR --preserve=all
...
-d same as --no-dereference --preserve=links
...
-P, --no-dereference
never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
preserve the specified attributes (default:
mode,ownership,timestamps), if possible additional attributes:
context, links, xattr, all
...
-R, -r, --recursive
copy directories recursively
আপনার নতুন পার্টিশনের ইউইউডি জানতে হবে। আপনি ম্যাপিংটি করে দেখতে পারেন:
$ ls -l /dev/disk/by-uuid/
এবং তারপরে এই লাইনটি যুক্ত করুন /etc/fstab
:
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
আপনার ইউআইডি-তে ইউআইডি পরিবর্তন করুন এবং ext4
আপনি যে ফাইল ফাইলটি ব্যবহার করছেন তা রূপান্তর করুন - আপনি যদি পার্টিশনটি সেট আপ করেন তবে আপনার এটি জানা উচিত।
পুনরায় বুট করার পরে, /usr
রুট পার্টিশনের পুরানো ফাইলগুলি নতুন পার্টিশনটি মাউন্ট করা দ্বারা আড়াল করা হবে /usr
। তবে আমরা পুরানো ফাইলগুলিতে পৌঁছতে এবং তারপরে মুছে ফেলার জন্য কিছু মাউন্ট বাইন্ড কৌশল ব্যবহার করতে পারি।
$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr/*
$ sudo umount /mnt
তবে কিছুটা সামান্য ভুল টাইপিং (বলুন, যখন আপনি কেবল টাইপ করবেন তখন এন্টার চাপলে sudo rm -rf /mnt
) বিপর্যয় ঘটতে পারে, সুতরাং আপনি কেবলমাত্র এই পদ্ধতিটিই ব্যবহার করতেন যদি আপনি যা করছেন তার প্রতি খুব আত্মবিশ্বাসী ছিলেন, সত্যিই কোনও ডাউনটাইম মোকাবেলা করতে পারবেন না, বা না থাকতেন মেশিনে শারীরিক অ্যাক্সেস এবং সেইজন্য একটি লাইভ সিডি বা লাইভ ইউএসবি স্টিকটি বুট করতে অক্ষম।
rsync
পরিবর্তে পরিবর্তিত একটি বৈকল্পিক উত্তর দিতে পারেন ?
rsync -avz
। Rsync আপনাকে অনুলিপিগুলি পুনরায় আরম্ভ করার অনুমতি দেয় এবং সাধারণত পার্টিশন, ব্লক ডিভাইস বা মেশিনগুলির মধ্যে যাওয়ার সময় ব্যবহার করা উচিত।
cp
। এটি হার্ড লিঙ্কগুলি সংরক্ষণ করে না। এটি ভবিষ্যতে প্যাকেজ আপগ্রেডগুলি ভঙ্গ করবে । উদাহরণস্বরূপ /usr/bin/s2p
এবং /usr/bin/psed
একই ফাইল। সাথে সরানো cp
সেই ফাইলটির 2 টি স্বতন্ত্র সংস্করণ তৈরি করবে। কি rsync -aH
পরিবর্তে।
rsync -avH a/ b
থেকে ভিন্নভাবে rsync -avH a b
, কপি বিষয়বস্তু ফোল্ডার a
(যে, a/*
প্রথম ক্ষেত্রে) ও ফোল্ডারের নিজেই দ্বিতীয় মধ্যে। আপনি এখানে স্ল্যাশ ব্যবহার করেছেন তা নিশ্চিত করুন।
যেহেতু বেশিরভাগ লাইব্রেরি ব্যবহার করা হয় সেগুলি / usr তে অন্তর্ভুক্ত তাই আমি উবুন্টু চালানোর সময় এই ডিরেক্টরিটি স্থানান্তরিত করার পরামর্শ দেব না। বাস্তবে, আপনি সম্ভবত এটি করার চেষ্টা করার সময় ত্রুটি বার্তা পাবেন। অতএব, লাইভসিডিটি ব্যবহার করা ভাল।
আপনি সিপি, আরএসএনসি ইত্যাদি ফাইল সরিয়ে / অনুলিপি করতে বিভিন্ন সম্ভাবনা ব্যবহার করতে পারেন আপনি যে কোনও প্রতিলিঙ্ক তৈরি করেছেন এবং কেবল অনুলিপি করা হয়নি তা নিশ্চিত করতে চান। সিপি এবং আরএসএনসি উভয়েরই এর জন্য বিকল্প রয়েছে।
ফাইলগুলি অন্য পার্টিশনে স্থানান্তরিত করার পরে নতুন পার্টিশনটি / usr এ মাউন্ট করতে আপনাকে / etc / fstab এ অন্য মাউন্ট যুক্ত করতে হবে।
মনোযোগ: আমি জানি না আমি কী করছি, আমি কেবল কমান্ডগুলি অনুলিপি করছি এবং অন্যদের পরামর্শ অনুসারে করছি। এটি করার জন্য এটি ভুল উপায় হতে পারে তবে এটি আমার পক্ষে কাজ করে (আপাতত, কমপক্ষে)।
আমি এটি এভাবেই করেছি (হামিশের উত্তর এবং মন্তব্যগুলি অনুসরণ করে):
নতুনভাবে নির্মিত পার্টিশনটি সমস্ত ফাইল অনুলিপি করুন (আপনার পার্টিশনের অবস্থানের সাথে প্রতিস্থাপন করুন, এটি আমার মতো দেখা উচিত):
rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c
এই মুহুর্তে আমি বুঝতে পেরেছি যে এটি /usr
পার্টিশনের ফোল্ডারে সমস্ত কিছু অনুলিপি করেছে, যা কাজ করছে না , তাই আমি ফোল্ডার থেকে পার্টিশনের মূলটিতে সমস্ত কিছু (ফাইল ম্যানেজার সহ) অনুলিপি করেছিলাম এবং খালি মুছে ফেলেছি ফোল্ডার পরে।
সম্পাদনা করুন /etc/fstab
(হামিশের উত্তরের মতোই, অবশ্যই আপনার ইউইউডি দিয়ে প্রতিস্থাপন করুন)
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
একটি পদক্ষেপ যা খুব জ্ঞানী না হয়ে পরিণত হয়েছিল: আমি বর্তমানে মাউন্ট করা /usr
পার্টিশনের নামটি পরিবর্তিত করেছিলাম /usrBACKUP
, যাতে আমি জানতে পারি যে, আমি যখন সিস্টেমটি পুনরায় বুট করি তখন এটি নতুনভাবে নির্মিত পার্টিশনে পুনরায় বুট হয়, না পুরানোটি । এরপরে, পর্দায় সমস্ত কিছু গ্লিট হয়েছে এবং পাওয়ার কীটি (আমি যেমন প্রতিভা) তেমন চাপ দিয়ে আমাকে এটিকে বন্ধ করে দিতে হয়েছিল । আপনি যদি আপনার সিস্টেমে ভুল করতে না চান তবে এই পদক্ষেপটি এড়িয়ে যান।
সিস্টেমটি পুনরায় বুট করুন
রিবুট করার পরে, আপনার নতুন /usr
পার্টিশনটি মাউন্ট হয়েছে কিনা তা দেখতে সিস্টেম মনিটর বা অনুরূপ অ্যাপ্লিকেশনটি খুলুন এবং সবকিছু পরিকল্পনা মতো হয়েছে কিনা তা সুরক্ষা-পরীক্ষা করতে পারেন।
সবকিছু ঠিক আছে কিনা তা যাচাই করার পরে, আপনি আপনার পুরানো /usr
পার্টিশনটি মুছতে পারেন । কিছু ভুল হয়ে গেলে আমি ঠিক রাখব।
sudo mount -a
এটি কি চালিয়ে যেতে দেওয়া উচিত নয় ?
rsync
এর চেয়ে আরও বেশি উপযুক্ত এটিcp