লিনাক্সে জিপিটি পার্টিশনের লাইভ আকার পরিবর্তন করুন


12

লিনাক্সে আমি এমডিআর পার্টিশনগুলিকে পুনরায় আকার দিয়েছি fdisk ব্যবহার করে এমনকি লাইভ ফাইল সিস্টেমগুলিতেও, এবং তারপরে নতুন স্থান বরাদ্দ পেতে একটি রাইজাইটিফ / পিভিরাসাইজ / ... (এফএস টাইপের উপর নির্ভর করে) ইস্যু করি।

ইদানীং আমি জেন ​​এবং জিপিটি পার্টিশন ব্যবহার করেছি এবং আমি লক্ষ্য করেছি যে দুর্ভাগ্যক্রমে বিভাজিতরা মাউন্ট করা পার্টিশনটিকে অন-ফ্লাই রিসাইজ করার অনুমতি দেয় না বলে মনে হয়, বাস্তবে এটি অভিযোগ করবে:

Error: Partition XXX is being used. You must unmount it before you modify it with Parted.

আমি resizeকমান্ড এবং এমনকি rm+ mkpartসংমিশ্রণ উভয়ই চেষ্টা করেছি , তবে তারা উভয়ই পার্টিশনটি মাউন্ট হওয়ার বিষয়ে অভিযোগ করবে।

আমি এটা কিভাবে করবো?


উত্তর:


12

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

আপনি যদি কোনও ডাউনটাইম সহ্য করতে না পারেন তবে এর gdiskপরিবর্তে আপনি চেষ্টা করতে পারেন parted। আপনি যে পার্টিশনটি পুনরায় আকার দিতে চান সেটি মুছে ফেলতে হবে এবং একই জায়গায় একই স্টার্ট পয়েন্ট সহ একটি নতুন তৈরি করতে হবে, আপনি যতটা কাজ করেছেন fdiskgdiskব্যবহারযোগ্য ডিস্কে কাজ করতে ইচ্ছুক, যদিও কার্নেল কোনও পরিবর্তন নিবন্ধ না করে। সেক্ষেত্রে আপনাকে নতুন পার্টিশন টেবিলটি গ্রহণ করতে কার্নেলটি ব্যবহার করতে partprobeবা kpartxপেতে প্রয়োজন হতে পারে , এমনকি যদি এটি কাজ না করে তবে কম্পিউটারটি পুনরায় বুট করুন। (এটি ব্যবহারের মতো সব মিলিয়ে হওয়া উচিত fdisk))


দেখতে দেখতে দুর্দান্ত, তবে সেন্টস-এ ডিফল্টরূপে অন্তর্ভুক্ত নয়। আর কোন স্ট্যান্ডার্ড উপায়? মানে, একটি রেডহ্যাট-এর মতো সিস্টেমটি বাহ্যিক প্রোগ্রামগুলির উপর নির্ভর না করে স্ব-আকার পরিবর্তন করতে সক্ষম হবে
সাইবার্জ

2
সেন্টোসের সাথে জাহাজের কোনও সরঞ্জাম নেই যা কাজটি করবে। আপনি যা চান তা করতে আপনাকে অবশ্যই সেন্টোস সংগ্রহস্থলের বাইরে যেতে হবে । মনে রাখবেন যে প্রায় সমস্ত ডিস্ট্রিবিউশন (ফেডোরা সহ) gdiskতাদের ভাণ্ডারগুলিতে অন্তর্ভুক্ত রয়েছে এবং আমি শুনেছি যে gdiskআরএইচইএলের পরবর্তী সংস্করণে অন্তর্ভুক্ত করা হবে (এবং সেহেতু সেন্টোস)।
রড স্মিথ

উত্তর এবং মন্তব্যের জন্য আপনাকে ধন্যবাদ, এটি হ'ল তথ্যটি আমি সন্ধান করছি
সাইবার্জ

1
gdiskEPEL এ উপলব্ধ।
জর্নে

আমি উভয় চেষ্টা partxএবং partprobeকিন্তু শেষ পর্যন্ত পুনরায় বুট করতে হয়েছিল। এই পরামর্শগুলির জন্য যাইহোক আপনাকে ধন্যবাদ
আলেকজান্দ্রি বুর্লিয়ার

10

এটি সাধারণত আরও সাম্প্রতিক লিনাক্স বিতরণগুলির সাথে কাজ করে। সরঞ্জাম প্রয়োজন:

  • অংশবিশেষ (সাধারণত বিভক্ত অংশ)
  • gdisk / sgdisk

জিপিটি পার্টিশনটি ডিস্কের শেষে একটি ব্যাকআপ শিরোনাম সঞ্চয় করে। আপনি যদি অন্তর্নিহিত ডিভাইসটির আকার পরিবর্তন করেছেন তবে ব্যাকআপ শিরোলেখ মাঝখানে কোথাও থাকবে। প্রথম পদক্ষেপটি হ'ল ডিস্কের শেষে পার্টিশন শিরোনামকে সরানো।

ডিস্কটি ধরে নেওয়া / dev / sda এবং পার্টিশনটি / dev / sda3 (অবশ্যই শেষ পার্টিশন হওয়া আবশ্যক):

sgdisk -e /dev/sda

তারপরে শেষ বিভাজনটি মুছুন এবং পুনরায় তৈরি করুন:

sgdisk -d 3 /dev/sda
sgdisk -N 3 /dev/sda

আপনি সাধারণত একটি বার্তা দেখতে পাবেন যা নির্দেশ করে যে কার্নেল পার্টিশন টেবিলটি পুনরায় লোড করতে অক্ষম। আপনাকে পার্টপ্রোব চালাতে হবে যাতে পার্টিশনটি নতুন আকারের সাথে নিবন্ধিত হয়:

partprobe /dev/sda

যদি এটি ব্যর্থ হয়, আপনাকে ভার্চুয়াল মেশিনটি রিবুট করতে হবে। এর পরে আপনি উপযুক্ত ফাইলের সাহায্যে আপনার ফাইল সিস্টেমটি বাড়িয়ে নিতে পারেন ext4 ইত্যাদি for

resize2fs /dev/sda3

সাবধানতা : স্যাডডিস্ক চালানো ধ্বংসাত্মক হতে পারে। আপনার যথাযথ ব্যাকআপ পদ্ধতি রয়েছে তা নিশ্চিত করুন।


অসাধারণ! বিশেষত partprobeপদক্ষেপের জন্য ধন্যবাদ - আমি সর্বদা ভেবেছিলাম যে কোনও মাউন্ট করা পার্টিশনের সাথে পার্টিশন টেবিলটি পরিবর্তন করার সময় পুনরায় বুট করা দরকার।
piit79

মনে রাখবেন যে পার্টিশনটি ধ্বংস এবং পুনরুদ্ধার করার ফলে পার্টিশনের জন্য একটি নতুন পার্টিউইউডিড তৈরি হবে, অন্যথায় fstab / GRUB / ইত্যাদির একমাত্র নির্ভরযোগ্য এবং ফাইল-সিস্টেম-স্বতন্ত্র উপায় মাল্টি-ডিস্ক সেটআপগুলিতে নির্ভরযোগ্যভাবে পার্টিশন সনাক্ত করতে পারে।
টিও ক্লেস্টরপ রিজিজন

5

এখানে একটি উদাহরণ যা একটি স্বয়ংক্রিয় সরঞ্জাম একটি পার্টিশনটিকে অনলাইনে পুনরায় আকার দেওয়ার জন্য ব্যবহার করে, এক রানে:

স্যাডডিস্ক -ডি 1 -এন 1: 2048: 0 -সি 1: -উ 1: E485F29F-A1F4-4953-9DD8-799EAE009B -t 1: 0700 / দেব / এক্সভিদা

এখানে স্যাডডিস্ক কমান্ডের বিকল্পগুলির তালিকা:

  • -d 1 মুছে ফেলার প্রথম পার্টিশন
  • -n 1: 2048: 0 বলে 2048 শুরু করে নতুন পার্টিশন "সংখ্যা 1" তৈরি করুন End
  • আপনি এই পার্টিশনের জন্য অনন্য গাইড নির্ধারণ করেন (এটি জিপিটি পার্টিশনের জন্য নির্দিষ্ট); আপনি জিইউইডিটির জন্য একটি এলোমেলো মান সেট করতে 'আর' ব্যবহার করতে পারেন। gdisk /dev/xvda; pএকই ইউআইডি পুনরায় ব্যবহার করতে আপনি আউটপুট মাধ্যমে বর্তমান পার্টিশনের আইডিও পেতে পারেন
  • -t 1: 0700 মূলত প্রথম পার্টিশন টাইপকড '0700' এর।

/ dev / xvda হ'ল ডিস্কটি আমরা আবার ভাগ করেছিলাম।

সুতরাং এটি মুছে ফেলা এবং এখনই তার জায়গায় একটি নতুন পার্টিশন তৈরি করে।

পুনশ্চ. টাইপকোড '0700' তে কয়েকটি নোট। লোক এসজিডিআইএসকে থেকে (8)

   -t, --typecode=partnum:{hexcode|GUID}
          Change a single partition's type  code.  You  enter  the  type  code  using  either  a  two-byte  hexadecimal  number,  as 

পূর্বে বর্ণিত, বা একটি সম্পূর্ণ নির্দিষ্ট GID মান, যেমন EBD0A0A2-B9E5-4433-87C0-68B6B72699C7।

এখানে '0700' অর্থ কী তার জন্য সর্বোত্তম ব্যাখ্যা খুঁজে পেয়েছি - http://www.rodsbooks.com/gdisk/walkthrough.html

"তবে অপেক্ষা করুন," আপনি বলেছেন, "আমি ভেবেছিলাম ডিস্কটিতে একটি ফ্যাট বিভাজন ছিল!" আসলে এটা করে। উইন্ডোজ তার সমস্ত ডেটা পার্টিশনের জন্য একক জিআইডি কোড ব্যবহার করে, সেগুলি ফ্যাট বা এনটিএফএস হোক। অতীতে, একই কোডটি লিনাক্সে এর ডেটা পার্টিশনের জন্য ব্যবহৃত হয়েছিল। (শীঘ্রই এ সম্পর্কে আরও .... জিপিটি fdisk কিছুটা নির্বিচারে 0x0700 কোড ব্যবহার করে (বা আরও স্পষ্টভাবে, EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) এর জন্য।

আমার ক্ষেত্রে আমি বিশ্বাস করি যে এটি একটি লিনাক্স এক্সট 4 পার্টিশন ছিল, তবে পার্টিশনের টাইপকোড মানে ফাইল সিস্টেমের ধরণ নয়, তাই '0700' শেগডিস্কের জন্য একটি ক্যাচল টাইপের মতো দেখায়। কমপক্ষে আমি দেখেছি।

PPS। partprobeরিবুট সিস্টেম ছাড়াই পার্টিশন পরিবর্তনের বিষয়ে সচেতন হওয়ার জন্য আপনার কার্নেলের জন্য দৌড়াতে হবে।


'পি' আপনাকে ডিস্কের ইউআইডি প্রদর্শন করবে। 'আমি' আপনাকে একটি পার্টিশনের ইউআইডি প্রদর্শন করবে।
কিথ

2

আমি এখানে কিছু উত্তর এবং মন্তব্য সংক্ষিপ্ত করছি:

partedকেবল মাউন্ট করা পার্টিশন পরিবর্তন করতে অস্বীকার করবে। gdiskআপনার জন্য কাজটি করবে, তবে এটি স্ট্যান্ডার্ড আরএইচইএল বা সেন্টোস সংগ্রহস্থলে নেই। যদিও এটি EPEL সংগ্রহস্থলে রয়েছে।

মনে রাখবেন যে ব্যবহার করা হয় এমন ডিস্কে পার্টিশন পরিবর্তন কর্নেলকে পরিবর্তনগুলি নিবন্ধন করতে বাধা দিতে পারে। যে এমনটা হয়, তাহলে ব্যবহার partprobe, partxঅথবা পুনরায় বুট।


1

আপনি কি লজিকাল ভলিউমটির আকার পরিবর্তন করার বিষয়ে জিজ্ঞাসা করছেন? আমি এখানে এটি কীভাবে করব:

vgextend vgname /dev/sdb3
lvextend -L +3T /dev/mapper/location
resize2fs /mount/point

বা (এক্সএফএস):

xfs_growfs /mount/point -D <bytes>

তিনি সম্ভবত ext2 / ext3 / ext4 ব্যবহার করছেন না, অন্যথায় আকার পরিবর্তন 2fs উড়ে কাজ করা উচিত?

1
@ অ্যান্টনি লি: আপনি যদি পাস -rকরেন lvextendতবে এটি resize2fsআপনার জন্য প্রার্থনা করবে।
jmtd

0

fdisk পার্টিশনটি যদি সর্বশেষ পার্টিশন হয় এবং পার্টিশনের শুরুটি চলমান না থাকে তবে এটি সাধারণত পাওয়া যায়।

তবে এটি একটি বিপজ্জনক অপারেশন যা খুব যত্ন সহকারে করা উচিত। একটি ব্যাকআপ করুন!

ec2-user@ip-10-0-20-15 ~]$ sudo fdisk /dev/nvme0n1

Welcome to fdisk (util-linux 2.30.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/nvme0n1: 24 GiB, 25769803776 bytes, 50331648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 70E4A118-98BD-4BF4-8DF9-6926A964902A

Device           Start      End  Sectors Size Type
/dev/nvme0n1p1    4096 16777182 16773087   8G Linux filesystem
/dev/nvme0n1p128  2048     4095     2048   1M BIOS boot

Partition table entries are not in disk order.

Command (m for help): d
Partition number (1,128, default 128): 1

Partition 1 has been deleted.

Command (m for help): n
Partition number (1-127, default 1): 1
First sector (34-50331614, default 4096):
Last sector, +sectors or +size{K,M,G,T,P} (4096-50331614, default 50331614):

Created a new partition 1 of type 'Linux filesystem' and of size 24 GiB.
Partition #1 contains a xfs signature.

Do you want to remove the signature? [Y]es/[N]o: n

Command (m for help): p

Disk /dev/nvme0n1: 24 GiB, 25769803776 bytes, 50331648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 70E4A118-98BD-4BF4-8DF9-6926A964902A

Device           Start      End  Sectors Size Type
/dev/nvme0n1p1    4096 50331614 50327519  24G Linux filesystem
/dev/nvme0n1p128  2048     4095     2048   1M BIOS boot

Partition table entries are not in disk order.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

[ec2-user@ip-10-0-20-15 ~]$ sudo partprobe

[ec2-user@ip-10-0-20-15 ~]$ sudo fdisk -l
Disk /dev/nvme0n1: 24 GiB, 25769803776 bytes, 50331648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 70E4A118-98BD-4BF4-8DF9-6926A964902A

Device           Start      End  Sectors Size Type
/dev/nvme0n1p1    4096 50331614 50327519  24G Linux filesystem
/dev/nvme0n1p128  2048     4095     2048   1M BIOS boot

Partition table entries are not in disk order.

[ec2-user@ip-10-0-20-15 ~]$ sudo xfs_growfs /
meta-data=/dev/nvme0n1p1         isize=512    agcount=4, agsize=524159 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0
data     =                       bsize=4096   blocks=2096635, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2096635 to 6290939
```
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.