পুনরায় বুট না করে আমি কীভাবে নতুন fdisk টেবিল ব্যবহার করব?


11

আমি যখন fdisk চালনা করি এবং একটি পার্টিশনের আকার পরিবর্তন করি, fdisk তার আউটপুট শেষে বলে:

The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)

আমি পুনরায় বুট না করেই এটি করতে চাই (এবং তারপরে এটির কোনও স্ক্রিপ্ট লিখুন) আমি কীভাবে এটি সঠিকভাবে করতে kpartx ব্যবহার করব ? আমি চেষ্টা করেছিলাম:

kpartx -f -v /dev/mmcblk0

কোন ফলাফল:

mmcblk0p1 : 0 102400 /dev/mmcblk0 2048
mmcblk0p2 : 0 7657472 /dev/mmcblk0 104448

এবং:

kpartx -a -v /dev/mmcblk0

কোন ফলাফল:

device-mapper: reload ioctl on mmcblk0p1 failed: Invalid argument
create/reload failed on mmcblk0p1
add map mmcblk0p1 (0:0): 0 102400 linear /dev/mmcblk0 2048
device-mapper: reload ioctl on mmcblk0p2 failed: Invalid argument
create/reload failed on mmcblk0p2
add map mmcblk0p2 (0:0): 0 7657472 linear /dev/mmcblk0 104448

এটি রাস্পি চলমান ডেবিয়ানে একটি এসডি কার্ডের জন্য।

সম্পাদনা: আমি কী করার চেষ্টা করছি তা স্পষ্ট করতে; আমি কোনও এসডি কার্ড থেকে অব্যবহৃত পি 3 মুছে ফেলছি এবং কার্ডটি পূরণের জন্য পি 2 এর আকার পরিবর্তন করছি। কার্ডটিতে বর্তমানে একটি ছোট বুট পার্টিশন পি 1 এবং পি 2 রয়েছে যেখানে ওএস বসে।


বর্তমানে এসডি কার্ড ব্যবহার হচ্ছে? (উদাহরণস্বরূপ, এটিতে কি একটি মাউন্ট করা ফাইল সিস্টেম রয়েছে?)
ডার্বার্ট

@ আডারবার্ট, হ্যাঁ তা করে। এর দুটি পার্টিশন রয়েছে: একটি ছোট বুট পার্টিশন এবং বৃহত্তর মূল পার্টিশন যেখানে বেশিরভাগ ওএস বসেছে। আমি কার্ডটি পূরণের জন্য কেবল দ্বিতীয় পার্টিশনটি প্রসারিত করার চেষ্টা করছি।
অক্টোপাস

2
আমি যথেষ্ট নিশ্চিত যে উত্তরটি - আপনি পারবেন না। ডিভাইসটি ব্যবহার না করা থাকলে কার্নেল একটি পার্টিশন টেবিলটি পুনরায় পড়বে না ...
ডার্বার্ট

নেই partprobeসহায়তা প্রয়োজন?
গিলস

উত্তর:


7

আপনি চান partx -u, না kpartx(যা ডিভাইস-ম্যাপার ডিভাইসে চালিত হয়)।


-uপতাকার উদ্দেশ্য কী ?
ইগোরগানাপলস্কি

1
@ আইগোরগানাপলস্কি, অন ​​ডিস্কের সাথে একটিকে মিলানোর জন্য কার্নেল পার্টিশন টেবিলটি আপডেট করতে। একজন তাড়াতাড়ি man partxএই উত্তর দিতে হবে।
psusi

@ অক্টোপাস এটি আমার জন্য করেছে, যেখানে পার্টপ্রোব হয়নি। পার্টপ্রোব তখন ত্রুটি ছাড়াই ফিরে আসল।
ডানকান এক্স সিম্পসন

6

আমি বিশ্বাস করি @ আডারোবার্ট (যিনি মূল প্রশ্নে মন্তব্য করেছিলেন) সম্ভবত সঠিক। বর্তমানে ব্যবহৃত একটি পার্টিশন fdisking এর ক্ষেত্রে মনে হচ্ছে রিবুট করা ছাড়া আর কোনও বিকল্প নেই।

এমনকি যখন আমি ব্যবহার করি partprobe(যা দিয়ে প্রাপ্ত হয় apt-get install parted) আমি নিম্নলিখিত আউটপুটটি পাই:

Error: Partition(s) 2, 3 on /dev/mmcblk0 have been written, but we have 
been unable to inform the kernel of the change, probably because it/they 
are in use.  As a result, the old partition(s) will remain in use.  You 
should reboot now before making further changes.

আমি একই জিনিসটি করেছি, সুসংবাদটি হ'ল, আমি আনমাউন্ট করতে সক্ষম হয়েছি, পার্টপ্রোব <ডিভাইস> চালাতে সক্ষম হয়েছি এবং পুনরায় বুট না করে উভয় পার্টিশনটিকে পুনঃনির্মাণ করতে সক্ষম হয়েছি। দুর্ভাগ্যক্রমে পরিষেবাগুলি বন্ধ করার কারণে এটি এখনও ডাউনটাইম প্রয়োজন।
রাহলি 21

3
parted/ এর আরও সাম্প্রতিক সংস্করণগুলি এ partprobeজাতীয় ত্রুটি দেয় না এবং পুনরায় বুট না করে মাউন্ট করা পার্টিশনে ব্যবহার করা যেতে পারে।
psusi

@ স্পুসী, আমি একটি সাম্প্রতিক সংস্করণ ব্যবহার করছি partedতবে আমি এখনও একই ত্রুটি পেয়েছি। সমাধানটি ডিভাইসে চালানোর আগে ডিভাইসটিকে আনমাউন্ট করা হবে parted, তারপরে কার্নেলটিকে পুরাতন পার্টিশনের পরিবর্তে নতুন পার্টিশনটি ব্যবহার করার জন্য আপনাকে জানাতে আপনার সিস্টেমটি পুনরায় চালু করতে হবে না
মাইউরাথএকেডেমিয়া

1

আমি এই সমস্যাটি পেয়েছিলাম কারণ আমি ডিভাইসটি আনমাউন্ট করতে ভুলে গিয়েছি। পরে:

sudo umount /dev/sdb

fdisk সঠিকভাবে কাজ করেছে।


1
আমি এখনও একটি ত্রুটি পেয়েছি: পার্টিশন টেবিলটি পুনরায় পড়তে ioctl () কল করা হচ্ছে। পার্টিশন টেবিলটি পুনরায় পড়া ব্যর্থ হয়েছে: ডিভাইস বা সংস্থান ব্যস্ত
ইগোরগানাপলস্কি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.