স্কোয়াশফেস ফাইল সিস্টেমকে পঠন-লিখনে মাউন্ট করা


45

আমার একটি ইউএসবি স্টিকের একটি ক্লোনজিলা ইনস্টলেশন রয়েছে এবং আমি অপারেটিং সিস্টেমে কিছু পরিবর্তন করতে চাই। বিশেষত, /usr/sbinব্যাকআপগুলিকে কম বেদনাদায়ক করে তুলতে আমার নিজের ব্যাকআপ কমান্ডটি চালানো সহজ করার জন্য আমি একটি চালানো স্ক্রিপ্ট inোকাতে চাই ।

প্রধান ফাইল সিস্টেমটি /live/filesystem.squashfsইউএসবি FAT-32 পার্টিশনের অধীনে বাস করে।

ফাইলগুলি যুক্ত / অপসারণ / পরিবর্তন করতে সক্ষম হওয়ার জন্য আমি কীভাবে আমার লিনাক্স মেশিনে এই পঠন / লেখাকে মাউন্ট করতে পারি? আমি একটি উবুন্টু 12.04 ডেরিভেটিভ চালাচ্ছি।

উত্তর:


38

রুট হিসাবে, filesystem.squashfsকিছু খালি দির অনুলিপি করুন , যেমন:

cp /mnt/clonezilla/live/filesystem.squashfs /path/to/workdir
cd /path/to/workdir

ফাইলটি আনপ্যাক করুন তারপর এটিকে অন্য কোথাও সরান (যাতে আপনার এটি এখনও একটি ব্যাকআপ হিসাবে থাকে):

unsquashfs filesystem.squashfs
mv filesystem.squashfs /path/to/backup/

যান squashfs-root, যোগ / আপনার স্বাদ অনুযায়ী সংশোধন তারপর পুনঃ filesystem.squashfs:

cd /path/to/workdir
mksquashfs squashfs-root filesystem.squashfs -b 1024k -comp xz -Xbcj x86 -e boot

filesystem.squashfsআপনার ইউএসবি ড্রাইভে থাকা বিদ্যমানটির উপরে সদ্য নির্মিত অনুলিপি করুন , যেমন:

cp filesystem.squashfs /mnt/clonezilla/live/

তারপরে পুনরায় বুট করুন এবং আপনার লাইভ ইউএসবি ব্যবহার করুন।

দ্রষ্টব্য: উপরের কমান্ডগুলি এর অংশ squashfs-tools


এটি দুর্দান্ত কাজ করে তবে দুর্ভাগ্যক্রমে, আমি আমাকে বলতে সমস্ত মূল ডিরেক্টরিগুলির জন্য একটি বার্তা পাই Source directory entry bin already used! - trying bin_1। নিশ্চিতভাবেই, আমার আউটপুট ফাইল সিস্টেমে ফোল্ডারটি মার্জ করার পরিবর্তে আমার কাছে একটি /binএবং একটি রয়েছে /bin_1। কোন ধারনা? আমি যদি -noappend,ফাইল সিস্টেমের সাথে চালাই তবে এটি কার্যকরভাবে কাজ করে না।
নাফটুলি কে

1
@ টি কেকোচেরান - একটি কাস্টম স্ক্রিপ্ট যুক্ত করে /usr/binএবং পুনরায় পোস্ট করার পরে আমি এখানে ত্রুটিগুলির কোনওটিই পাচ্ছি না mksquashfs। ইউএসবি ড্রাইভ বুট জরিমানা এবং আমি লাইভ সেশন থেকে আমার স্ক্রিপ্ট ব্যবহার করতে পারেন। দৌড়ানোর আগে filesystem.squashfsআপনার পরিবর্তিত সংস্থার সাথে আপনার আর একই ডিরেক্টরিতে আর পুরানো নেই তা নিশ্চিত করুন । squashfs-rootmksquashfs
don_crissti

@ নাফতুলি: আপনি "এমভি ... ব্যাকআপ /" পদক্ষেপটি এড়িয়ে গেছেন বলে মনে হচ্ছে।
জোছিম ওয়াগনার

এটি কি (জাল) মূলের অধীনে কাজ করে না? কেবল নিষ্কাশন করা থেকে আমি ত্রুটিটি পেয়েছিcreate_inode: could not create character device squashfs-root/dev/audio, because you're not superuser!
উইলফ

@ উইল্ফ - আপনি squashfs-root/dev/*নিয়মিত ব্যবহারকারী হিসাবে ডিভাইস ফাইল ( ) তৈরি করতে পারবেন না , আপনার রুট সুবিধার দরকার আছে।
don_crissti

5

আপনার সিস্টেমে কিছু uion-ফাইলসিস্টেম সমর্থন করে, যেমন aufs বা overlayfs , আপনি আপনার আসল স্কোয়াশএফএস ফাইল বের করে আনতে হবে না।

উদাহরণস্বরূপ ওভারলেফগুলি ব্যবহৃত হয় (এটি সক্ষম করার জন্য একটি কার্নেল বিকল্প): আপনি আপনার স্কোয়াশফস.ফাইলে / এফএম বা অন্য কোথাও মাউন্ট করতে পারেন । এতে 2 ডিরেক্টরি সহ একটি লিখনযোগ্য ফাইল সিস্টেম প্রস্তুত করুন / বলুন এবং / অস্থায়ী করুন । সংযুক্ত ফলাফলের জন্য অন্য লিখনযোগ্য ডিরেক্টরি / ফাইন প্রস্তুত করুন । আপনার সিস্টেমে ওভারলেফ হিসাবে তাদের একসাথে মাউন্ট করুন ---

mount -t overlay -o lowerdir=/fm,upperdir=/to,workdir=/temp overlay /fin

এখন আপনি / ফিনে ফাইলগুলি যুক্ত / সংশোধন করতে পারেন । সবকিছু শেষ হয়ে গেলে, আপনি একটি নতুন স্কোয়াশফ ফাইলগুলিতে mksquashfs / ফাইন করতে পারেন ,

mksquashfs /fin newfile; umount /fin

, তারপরে আপনার ব্যবহৃত অন্যান্য সমস্ত ডিরেক্টরিগুলি সাফ / আনমাউন্ট করুন।

স্কোয়াশএফএস এবং কিছু unionfs সাধারণত একটি জন্য ব্যবহার করা হয় লাইভ-সিডি


যদি আপনি মাউন্ট করা / ফাইন থেকে কোনও ফাইল মুছে ফেলেন তবে এটি আপনার তৈরি চূড়ান্ত স্কোয়াশফগুলি থেকে সরানো হবে?
লোকালহোস্ট

2

এখানে আমি একটি অন্য উত্তর পেয়েছি:

bash# mount dir.sqsh /mnt/dir -t squashfs -o loop

7
উপরের কমান্ডটি এটিকে কেবল পঠনযোগ্য হিসাবে মাউন্ট করবে, এটি একে একে মাউন্ট না করার চেয়ে ভাল; হায়, হাতে থাকা প্রশ্নের পুরো উত্তর নয়।
হার্পারভিলি

আমি একমত যে এটি একটি সম্পূর্ণ উত্তর নয় not একসাথে unix.stackexchange.com/a/377269/27328 এর সাথে আপনি এমন একটি উত্তর তৈরি করতে পারেন যেখানে আপনার ফাইল সিস্টেমটি সংশোধন করতে আনপ্যাক করার প্রয়োজন নেই - কম স্থান, কম সময়।
ব্যবহারকারী

সবচেয়ে সহজ পদ্ধতি,
সেন্টোস

0

প্রদর্শিত হিসাবে ওভারলেফগুলি ব্যবহার করা ছদ্ম "স্কোয়াশফস আরডব্লু" থাকার সর্বোত্তম উপায়; এটি অবশ্য> 4.x কার্নেল (অথবা উবুন্টু> 14.x বিশ্বাসযোগ্য) চালানোর প্রয়োজন।

কোনও ওভারলেফ / অউফস / ইউনিয়নফ ছাড়াই যখন কেউ প্রবীণ লাইভ সিডিতে বসে থাকে তখন বিকল্প সমাধান হ'ল স্কোয়াশফাউন ক্ষমতা ব্যবহার করা is

গুরুত্বপূর্ণ:

 without unsquashfs, so this can be done on low storage system

উদাহরণ:

স্কোয়াশফের "usr" ডিরেক্টরিটি পরিবর্তন করুন

1    mount squashfs_file /mnt

2    cp -a /mnt/usr $HOME  ##modify whatever $HOME/usr as needed

3    mksquashfs /mnt new_squashfs_file -wildcards -e usr

4    mksquashfs $HOME/usr new_squashfs_file -keep-as-directory

5    umount /mnt  # cleanup

লাইন 3 অস্থায়ীভাবে olddir_usr বাদ দিয়ে স্কোয়াশফিল ফাইল তৈরি করে

লাইন 4 নতুন_সকোয়াফসফাইলে সংশোধিত-ইউএসআর-ডির সংযোজন করে

এখানে স্কোয়াশফ যোগ করুন স্কোয়াশফ ফাইলের উপ-ডিরেক্টরিতে যুক্ত করুন

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