ব্যাচ মোডে বিভক্ত ব্যবহার করে সমস্ত অপ্রয়োজনীয় স্থান ব্যবহার করতে সর্বশেষ বিভাজনটি স্বয়ংক্রিয়ভাবে প্রসারিত করুন


20

দীর্ঘ গল্প সংক্ষিপ্ত, বুট (এম্বেডড সিস্টেম) এ স্বয়ংক্রিয়ভাবে আমার সমস্ত সম্পাদন করা উচিত।

আমাদের প্রকৌশলীগুলি উত্পাদন ডিভাইসে চিত্রগুলি ফ্ল্যাশ করবে। এই চিত্রগুলিতে একটি ছোট পার্টিশন টেবিল থাকবে। বুটে, ডিস্কের সমস্ত উপলভ্য স্থান ব্যবহার করার জন্য আমাকে স্বয়ংক্রিয়ভাবে শেষ পার্টিশন (# 3) প্রসারিত করতে হবে।

আমি আমার ডিস্কের ফাঁকা জায়গার দিকে তাকালে আমি যা পাই তা এখানে।

> parted /dev/sda print free
Model: Lexar JumpDrive (scsi)
Disk /dev/sda: 32.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
        17.4kB  1049kB  1031kB  Free Space
 1      1049kB  25.3MB  24.2MB  fat16        primary  legacy_boot
        25.3MB  26.2MB  922kB   Free Space
 2      26.2MB  475MB   449MB   ext4         primary
 3      475MB   1549MB  1074MB  ext4         primary
        1549MB  32.0GB  30.5GB  Free Space

আমার পার্টিশনটি 3 দ্বারা এন (30.5 গিগাবাইট) বাইট সংখ্যা প্রসারিত করতে হবে

কোনও প্রম্পট ছাড়াই আমি কীভাবে এই পদক্ষেপটি স্বয়ংক্রিয়ভাবে সম্পাদন করব? এটির তৃতীয় বিভাজনের পরে গতিশীল আকারের জায়গার সাথে কাজ করা দরকার।


কোনও চেষ্টা ছাড়াই স্ক্রিপ্টে যাওয়ার জন্য প্রস্তুত পাওয়ার প্রত্যাশা করবেন না! তাহলে আপনি কি এখনও আমাদের দেখাতে পারেন? আপনি যে পার্টিশনটি পুনরায় আকার দিচ্ছেন সেটি অপারেশন চলাকালীন অবশ্যই মাউন্ট করা উচিত নয় ....
লুসিয়ানো অ্যান্ড্রেস মার্টিনি

আমি resizepartকমান্ড চেষ্টা করেছি , এবং এটি কার্যকর হয়, তবে এটির জন্য সঠিক আকারের প্রয়োজন। আমার এটি গতিশীল হওয়ার দরকার।
পল নফফ

resize2fsআমি যা খুঁজছি হতে পারে linux.die.net/man/8/resize2fs
পল নফফ

উত্তর:


22

বর্তমান সংস্করণগুলিতে parted, resizepartপার্টিশনের জন্য কাজ করা উচিত ( partedবোঝে 100%বা এর মতো জিনিসগুলি -1s, পরবর্তীগুলিও --সেমিডলাইনটিতে বিকল্পগুলি পার্সিং বন্ধ করতে হবে)। সঠিক মান আপনি ব্যবহার করতে পারেন তা নির্ধারণ করতে unit s, print freeresize2fsপরে ফাইল সিস্টেমের জন্য আসে।


পুরানো সংস্করণগুলির partedএকটি resizeকমান্ড ছিল যা পার্টিশন এবং ফাইল সিস্টেম উভয়কেই আবার পরিবর্তন করতে পারে, এটি এমনকি এটির জন্যও কাজ করে vfat

কোনও কোবো ইডারার সংশোধনীতে আমি এটি অভ্যন্তরীণ মেমরির তৃতীয় বিভাজনকে সর্বাধিক আকারে পরিবর্তন করতে ব্যবহার করেছি: (এটি অন্ধভাবে ধরে ধরেছে যে চতুর্থ পার্টিশন এবং এমএসডোস টেবিল এবং জিনিসগুলি নেই)

start=$(cat /sys/block/mmcblk0/mmcblk0p3/start)
end=$(($start+$(cat /sys/block/mmcblk0/mmcblk0p3/size)))
newend=$(($(cat /sys/block/mmcblk0/size)-8))

if [ "$newend" -gt "$end" ]
then
    parted -s /dev/mmcblk0 unit s resize 3 $start $newend
fi

/sys/block/.../কার্নেল সমর্থন করে তা থেকে আপনি মানগুলিও পেতে পারেন। কিন্তু কমান্ডটি partedসরিয়ে ফেলেছে resizeযাতে resizepartপার্টিশনটি বাড়ানোর জন্য আপনার এখন দুটি পদক্ষেপ করতে হবে এবং আপনার ফাইল-সিস্টেম যে কোনও সরঞ্জামের জন্য এটি বাড়ানোর resize2fsজন্য সরবরাহ করে ext*


আমি ঠিক এটিই খুঁজছিলাম। আপনার সাহায্যের জন্য ধন্যবাদ!
পল নফফ

পার্শ্ব প্রশ্ন, শেষে 8 বাইট সঙ্গে কি?
পল নফফ

একটি একক খাত দ্বারা পুনরায় আকার এড়াতে ... আপনি এটিকে -40 বা কিছুতে (ডিস্কের শেষে জিপিটি ব্যাকআপ শিরোনাম) পরিবর্তন করতে হবে।
frostschutz

না partedকম্যান্ড লাইন থেকে স্বয়ংক্রিয় এক্সটেনশান সমর্থন করে না? কারণ, এটা নেই এটা ইন্টারেক্টিভ সমর্থন করি। যদি ইন্টারেক্টিভভাবে চালানো হয় তবে এটি আপনাকে জিজ্ঞাসা করবে যে আপনি GPT পার্টিশন টেবিলটি ডিস্কের (টাইপ fix) আকারের সাথে মেলে ঠিক করতে চান এবং তারপরে আপনি চালাতে পারেন resizepart 3 -1। কমান্ড লাইন থেকে এটি কীভাবে করা যায় তা আমি বের করার চেষ্টা করছি।
হার্ভে

এত দ্রুত নয়: par.০ অংশে পুনরায় আকার কমান্ড সরানো হয়েছে। Sfdisk বা gpart ব্যবহার করে দেখুন।
গ্রেগড

16

আলাদাভাবে স্ক্রিপ্ট স্ক্রিপ্ট করতে অক্ষম হওয়ায় (এটি নিশ্চিতকরণের জন্য জিজ্ঞাসা করেছিল কারণ পার্টিশনটি মাউন্ট হয়েছিল এবং অন্যান্য উত্তরগুলির বিপরীতে যা আমি বুঝতে পারি নি -1sবা বুঝতে পারে না 100%), আমি কেবল গ্রোপার্ট সরঞ্জামটি পেয়েছি যা ঠিক এটি করে।

ব্যবহার সহজ: growpart /dev/sda 3(এবং তারপরে resize2fs /dev/sda3বা ব্যবহৃত ফাইল সিস্টেমের জন্য অন্য কোনও উপযুক্ত কমান্ড)।

ডেবিয়ান এবং উবুন্টুতে এটি ক্লাউড-গেস্ট-ইউটিস হিসাবে প্যাকেজ করা হয় ।


1
এই মুহুর্তে আমি এটি সবচেয়ে সুবিধাজনক উপায়টি খুঁজে পেতে পারি। এটি আশ্চর্যজনকভাবে কাজ করেছে।
সেবিএফ

এটি আমার জন্য সমাধান ছিল - ফাইলটি সিস্টেমের মতো এক্সট 4 পছন্দ করে না, এবং ফাইল সিস্টেমকে পুনরায় আকার দেওয়ার চেষ্টা করার এড়াতে কোনও উপায় নেই বলে মনে হয় ...
অ্যান্টি হাপাল

উবুন্টু 18.04 এর জন্য কাজ করছে না
ড্রিমফ্ল্যাশার

@ ড্রিমফ্ল্যাশার এটি আপনার পক্ষে কাজ করে না কেন আমি তা বলতে পারি না। আমি যতদূর দেখতে পাচ্ছি আপনি কেবল ক্লাউড-গেস্ট-ইউটিস প্যাকেজটি ইনস্টল করতে পারেন এবং যেহেতু গ্রোপ পার্টের দ্বারা সরবরাহ করা এটিই একমাত্র কাজ যা কোনও বাগ না থাকলে এটি কাজ করা উচিত, এটি ভুলভাবে ব্যবহৃত হয়েছে বা এর নিয়ন্ত্রণের বাইরে কিছু ভুল হচ্ছে। মনে রাখবেন যে সর্বশেষ যুক্তি (উদাহরণের মধ্যে 3) পার্টিশনটি পুনরায় আকার দিতে হবে, এটি 1 থেকে গণনা করা হচ্ছে এবং পার্টিশনের পরে এইভাবে পুনরায় আকার দিতে সক্ষম হওয়ার জন্য পর্যাপ্ত জায়গাটি পাওয়া দরকার।
আইভো

7

এটি করার সঠিক উপায়টি পার্থক্যের শতাংশের ধারণা রয়েছে তা ব্যবহার করা। সুতরাং

parted /dev/sda resize 3 100%

1
পুরানো, উবুন্টু 18.04 এবং তার পরে কাজ করছে না
ড্রিমফ্ল্যাশার

সামান্য রাইজাইয়ে কমান্ডটি পার্টড ভার্সন 3 নিয়ে চলেছে, আপনাকে এখন রেজিজেপার্ট কমান্ডটি ব্যবহার করতে হবে এবং তারপরে পৃথকভাবে অন্তর্নিহিত ফাইল সিস্টেম বা পিভি পরিবর্তন করতে হবে যদি আপনি এটি ব্যবহার করছেন। Ext4 -র জন্য কমান্ডটি resize2fs, বা XFS- এর জন্য এটি xfs_growfs। উভয় ক্ষেত্রেই সাধারণত ফাইল সিস্টেম মাউন্ট করা হয় এবং যুক্তি উভয় ক্ষেত্রেই মাউন্ট পয়েন্ট point
জোনাথন বুজার্ড

0

উবুন্টু 18.04-এ, আমি নিম্নলিখিত সহ একটি স্ক্রিপ্টে অবিকৃত স্থান পূরণ করতে পুনরায় আকার দিতে সক্ষম:

sudo parted -s /dev/sdb "resizepart 2 -1" quit
sudo mount -av
sudo umount /dev/sdb2
sudo mount /dev/sdb2 /mnt
sudo resize2fs /dev/sdb2

পুনরায় আকার দেওয়ার আগে মাউন্ট করা প্রয়োজন হবে না। আমি ব্যবহারকারী ইনপুটটির জন্য পুনরায় আকার 2fs থেকে একটি প্রশ্নের দমন করতে এটি করেছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.