আমি 16TB সীমা ছাড়িয়ে একটি ext4 পার্টিশনকে কীভাবে আকার দেব?


26

Ize৪ বিট পতাকা ব্যতীত যে আকারটি তৈরি করা হয়েছিল এবং পুরানো ext4 পার্টিশনটি পুনরায় আকার দেওয়ার চেষ্টা করার সময়, নতুন আকারটি ১T টিবিবি বা অতিক্রম করলে পুনরায় আকার 2fs 1.42 ব্যর্থ হবে।

$ resize2fs -p /dev/mapper/target-device
resize2fs: New size too large to be expressed in 32 bits

আমি কোনও বহিরাগত মাধ্যমে ফাইলগুলি অনুলিপি করতে চাই না। আমিও ডেটা ক্ষতির ঝুঁকি নিতে চাই না। আমি কীভাবে নিরাপদে ভলিউমের আকার পরিবর্তন করতে পারি?

উত্তর:


46

আপনি -O 64bitবিকল্পটি ডিফল্ট হওয়ার আগে তৈরি হওয়া একটি ফাইল সিস্টেমের আকার পরিবর্তন করার চেষ্টা করছেন । আপনার এক্সট্রা ফাইল সিস্টেমটি 64৪ বিট ঠিকানায় আপগ্রেড করা সম্ভব, এটি উল্লেখযোগ্যভাবে বৃহত্তর (16 টিআইবি পরিবর্তে 1024 পাইবি) ভলিউম ছড়িয়ে দেবে।

আপনার টার্গেট ডিভাইসটিকে কল করা হয়েছে বলে ধরে নেওয়া /dev/mapper/target-device, এটিই আপনার করা দরকার:

পূর্বশর্ত

  1. এই আকারের ভলিউম অবশ্যই RAID দ্বারা ব্যাক করা উচিত । নিয়মিত ডিস্ক ত্রুটি অন্যথায় ক্ষতির কারণ হবে
  2. তবুও, RAID ব্যাকআপ নয় । আপনি আবশ্যক আপনার মূল্যবান পাশাপাশি অন্যত্র সঞ্চিত আছে।
  3. প্রথমে আশেপাশের সমস্ত ভলিউমকে পুনরায় আকার দিন এবং যাচাই করুন (পার্টিশন সারণী, এনক্রিপশন, lvm)।
  4. হার্ডওয়্যার RAID কনফিগারেশন পরিবর্তন করার পরে, লিনাক্স তাত্ক্ষণিকভাবে নতুন সর্বাধিক আকারটি স্বীকৃতি দিতে পারে বা নাও পারে। প্রয়োজনে চেক করুন $ cat /proc/partitionsএবং পুনরায় বুট করুন ।

সাম্প্রতিক স্থিতিশীল কার্নেল এবং e2fsprogs ব্যবহার করুন

  1. নিশ্চিত হয়ে নিন যে uname -rআপনি কোনও কার্নেলটি চালাচ্ছেন যা 64 বিট এক্সট 4 ফাইল সিস্টেমগুলি সঠিকভাবে পরিচালনা করতে পারে - আপনি 4.4.xকার্নেল বা তার পরে (ডিফল্ট উবুন্টু 16 এবং উপরে) ব্যবহার করতে চান ।
  2. কমপক্ষে সংস্করণটির e2fsprogs অর্জন করুন 1.43

    • Ubuntu 16.04(2016-04-21) প্রকাশিত হয়েছিল e2fsprogs 1.42.12(2014-08-25)
    • e2fsprogs 1.43 (২০১-0-০5-১)) এক্সট্রাফ ঠিকানা আকার আপগ্রেড করতে সক্ষম প্রথম রিলিজ।
    • Ubuntu 18.04(2018-04-26) দিয়ে জাহাজগুলি e2fsprogs 1.44.x(ভাল!)

আপনি যদি চালু থাকেন 16.04এবং কোনও নতুন উবুন্টু রিলিজে আপগ্রেড করতে না পারেন, আপনাকে উত্স প্যাকেজ সমর্থন সক্ষম করতে হবে এবং ম্যানুয়ালি একটি নতুন সংস্করণ ইনস্টল করতে হবে :

$ resize2fs
# if this  prints version 1.43 or above, continue to step 1
$ sudo apt update
$ sudo apt install git
$ sudo apt build-dep e2fsprogs
$ cd $(mktemp -d)
$ git clone -b v1.44.2 https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git e2fsprogs && cd e2fsprogs
$ ./configure
$ make
$ cd resize
$ ./resize2fs
# this should print 1.43 or higher
# if this prints any lower version, panic
# use `./resize2fs` instead of `resize2fs` for the rest of the steps

পুনরায় মাপ

পদক্ষেপ 1: ফাইল সিস্টেমটি যথাযথভাবে আনমাউন্ট করুন

$ sudo umount /dev/mapper/target-device

পদক্ষেপ 2: ত্রুটির জন্য ফাইল সিস্টেমটি পরীক্ষা করুন

$ sudo e2fsck -fn /dev/mapper/target-device

পদক্ষেপ 3: ফাইল সিস্টেমে 64 বিট সমর্থন সক্ষম করুন

পরামর্শ man tune2fsএবং man resize2fs- আপনি কিছু ফাইল সিস্টেমের পতাকা পরিবর্তন করতে পারেন।

$ sudo resize2fs -b /dev/mapper/target-device

একটি আদর্শ এইচডিডি রেডে, এটি উচ্চ আইও এবং সিপিইউ লোডের 4 মিনিট সময় নেয়।

পদক্ষেপ 4: ফাইল সিস্টেমের আকার পরিবর্তন করুন

$ sudo resize2fs -p /dev/mapper/target-device

আপনি যদি কমান্ড লাইনে কোনও আকারটি পাস না করেন, পুনরায় আকার 2fs "সমস্ত স্থান উপলব্ধ হবে" ধরে নেয় - এটি সাধারণত যা আপনি চান তা ঠিক। -pপতাকা সক্ষম উন্নতি বার - কিন্তু যারা শুধুমাত্র কিছু প্রাথমিক পদক্ষেপ পর প্রদর্শন।

একটি আদর্শ এইচডিডি রেডে, এটি উচ্চ আইও এবং সিপিইউ লোডের 4 মিনিট সময় নেয়।

আবার যাচাই করুন

ফাইল সিস্টেম আবার পরীক্ষা করুন

$ sudo e2fsck -fn /dev/mapper/target-device

নতুন সংস্করণগুলির e2fsck পূর্ববর্তী সংস্করণগুলি খারাপভাবে পরিচালিত টাইমস্ট্যাম্প বা সীমিত গাছগুলি ঠিক করার পরামর্শ দিতে পারে। এটি কোনও গুরুতর সমস্যার ইঙ্গিত নয় এবং আপনি এখন বা পরে এটিকে ঠিক করতে বেছে নিতে পারেন।

যদি ত্রুটি দেখা দেয় তবে আতঙ্কিত হবেন না এবং ভলিউমে লেখার চেষ্টা করবেন না ; ফাইল সিস্টেমের বিস্তৃত জ্ঞানের সাথে কারও সাথে পরামর্শ করুন, কারণ পরবর্তী ক্রিয়াকলাপগুলি সম্ভবত ডেটা নষ্ট করে দেবে!

যদি কোনও ত্রুটি না ঘটে তবে ডিভাইসটি পুনরায় মাউন্ট করুন:

$ sudo mount /dev/mapper/target-device

সফল!

আপগ্রেড ফাইল সিস্টেমের ক্রমাগত অপারেশনের জন্য আপনার e2fsprogs এর কোনও অ-উবুন্টু সংস্করণ প্রয়োজন হবে না - কার্নেল বর্তমানে বেশ কিছু সময়ের জন্য তাদের সমর্থন করে। এটি কেবল আপগ্রেড শুরু করার প্রয়োজন ছিল।


রেফারেন্সের জন্য, সেখানে অনুরূপ ত্রুটি বার্তা রয়েছে মেক 2 এফ প্রিন্ট করবে যদি এটি অনুপযুক্ত বিকল্পগুলির সাথে একটি বিশাল ডিভাইস তৈরি করতে বলা হয়:

$ mke2fs -O ^64bit /dev/huge
mke2fs: Size of device (0x123456789 blocks) is too big to be expressed in 32 bits using a blocksize of 4096.

1
এটা সঠিক। আমি যুক্ত করতে চাই যে ১T টিবি-র উপরে একটি ফাইল সিস্টেম বিভাজন করার সময় তাদের ইনস্টলারে রেডহ্যাট (সুতরাং আরএইচইল, সেন্টোস, ইত্যাদি) এক্সএফএস-এর চেয়ে বেশি এক্সএফএস পছন্দ করত, এবং এখন এক্সএফএসকে কেবল ডিফল্ট ফাইল সিস্টেম হিসাবে সরাসরি পছন্দ করবে।
ডায়াবলো-ডি 3

হ্যাঁ, রেডহ্যাট ওয়ার্ল্ডে এখনও বেশিরভাগ পুরানো কার্নেলগুলি এখনও 64 বিট এক্সট 4 এর জন্য স্থিতিশীল সমর্থন করে না। আফাইক উবুন্টু অনেকগুলি লিনাক্স গুরু যা বলেছেন তা নিয়ে চলেছেন, এক্সট্র 4 টি বিটিআরএফএস দ্বারা প্রতিস্থাপন করা উচিত - যদিও এক্সট 4 এখন বৈশিষ্ট্যগুলিতে বিটিআরএফ-এর কাছাকাছি থাকলেও আমি বিশ্বাস করি যে বিটিআরএফস ডিজাইনের ক্ষেত্রে আরও মার্জিত এবং সম্ভবত বাগের চেয়ে কম ঝুঁকির সম্ভাবনা রয়েছে।
anx

2
বিআরটিএফস উত্পাদনের জন্য প্রস্তুত নয়, এবং উত্পাদনের জন্য কখনই প্রস্তুত হতে পারে না, যেহেতু ওরাকল এটির বিকাশটিকে ব্যাক বার্নারে ফেলেছে। আমার ব্যক্তিগত মতামতটি যদি আপনার সেই স্তরের ফাইল সিস্টেমের জটিলতার প্রয়োজন হয় তবে আপনার আসল ডেটা স্টোরেজ প্রয়োজনের জন্য জেডএফএস ব্যবহার করে একত্রে একটি ছোট 8 জিবি এক্সএফএস রুট ব্যবহার করুন।
ডায়াব্লো-ডি 3

0

সম্প্রতি আমার সাথে এটি ঘটেছিল, একটি উবুন্টু 18.04 যা 16.04 উবুন্টু দিয়ে প্রাথমিকভাবে ইনস্টল করার পরে আপডেট করা হয়েছিল ... স্টোরেজ অ্যারে (/ dev / sdb) প্রাথমিকভাবে দুটি 14 টিবি পার্টিশনে বিভক্ত হয়েছিল, এবং এটি বড় করার ইচ্ছা করে প্রথম পার্টিশনটি 28 টিবিতে যে সমস্যা দেখা দিয়েছে।

আমার পুনরায় আকার 2fs এর নতুন সংস্করণটি ডাউনলোড করার দরকার নেই কারণ এটি খুব সাম্প্রতিক ছিল।

# resize2fs 
resize2fs 1.44.1 (24-Mar-2018)

একমাত্র সমস্যা ছিল 64৪ বিট পার্টিশন 1 রূপান্তর করা যা 32 বিটে ফর্ম্যাট হয়েছিল ... পাঠককে টিউন 2fs এর ডকুমেন্টেশনগুলির পরামর্শের পরিবর্তে (আনক্সের পরামর্শ অনুসারে) প্রস্তাব দেওয়ার পরিবর্তে আমি একটি বাস্তব উদাহরণ প্রস্তাব করছি!

# tune2fs -O 64bit /dev/sdb1
tune2fs 1.44.1 (24-Mar-2018)
Please run "resize2fs -b /dev/sdb1" to enable 64-bit mode.

# resize2fs -b /dev/sdb1
resize2fs 1.44.1 (24-Mar-2018)
Convert the file system to 64 bits.
The file system on /dev/sdb1 now has a size of 3662109119 blocks (4k).

অবশেষে, আমরা ডিস্ক বিভাজন বৃহত্তর!

# resize2fs /dev/sdb1
resize2fs 1.44.1 (24-Mar-2018)
Resizing the file system on /dev/sdb1 to 7324303099 (4k) blocks.
The file system on / dev / sdb1 now has a size of 7324303099 blocks (4k).
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.