সঠিক অনুমতি (রুট সহ) দিয়ে আমি কীভাবে একটি এক্সট 4-ফর্ম্যাটেড এসডি কার্ডটি মাউন্ট করতে পারি?


9

আমি এখানে একটি ext4- ফর্ম্যাট এসডি কার্ড তৈরির কয়েকটি উল্লেখ দেখছি, তবে কোনও গাইড নেই। এই ঘনিষ্ঠভাবে সম্পর্কিত এই প্রশ্নটি করার কোনও উপায় নেই যে এটি করার কোনও উপায় নেই, তবে আমার প্রশ্নটি আলাদা ed

আমি আমার কার্ডটি ext4 (GID পার্টিশন-টেবিল) হিসাবে ফর্ম্যাট করেছি; আমার সায়ানোজেনমড ফোনটি এতে লাগিয়েছে /mnt/fuse/sdcard1। আমি এখানে/storage/sdcard1 নিম্নলিখিত স্ক্রিপ্ট তৈরি করে কার্ড মাউন্ট করার জন্য নির্দেশাবলী অনুসরণ করেছি followed/data/local/userinit.sh

#!/system/bin/sh
REALMNT=/mnt/fuse/sdcard1_real
if ! [ -d "$REALMNT" ]; then
  mkdir "$REALMNT" || exit 1
fi
mount -t ext4 /dev/block/mmcblk1p1 "$REALMNT"
sdcard "$REALMNT" /storage/sdcard1 1023 1023 &

আমি পুনরায় শুরু করেছি এবং একটি ফাইল অনুলিপি করার চেষ্টা করেছি (ইএস ফাইল এক্সপ্লোরার ব্যবহার করে) এবং এটির মূল ডিরেক্টরিতে পেস্ট করেছি, যা ব্যর্থ হয়েছে:

/storage/sdcard1/foo/bar.mp3: open failed: EACCES (Permission denied).

আমি আসলে ফাইল জরিমানা প্লে করতে পারেন, তাই আমি করতে এটি খুলুন। এফডাব্লুআইডাব্লু, যখন আমি মূল মাউন্ট পয়েন্ট ( /mnt/fuse/sdcard1) থেকে অনুলিপি করার চেষ্টা করি তখন আমি কিছুটা আলাদা ত্রুটি পাই:

Failed to copy the file bar.mp3

আমি সায়ানগোজেনমড 10.2.0-i9300 সহ একটি স্যামসং গ্যালাক্সি এস 3 ব্যবহার করছি।

== সম্পাদনা ==

su
ls -l /mnt/fuse
drwxrwxr-x media_rw media_rw   2014-03-04 22:08 sdcard1

যে সব ছিল. sdcard1_realএই ডিরেক্টরিতে কোনও নেই , তাই আমি মনে করি স্ক্রিপ্টটি ব্যর্থ হচ্ছে?

== EDIT2 ==

সমস্যা সমাধানের জন্য আমি স্ক্রিপ্টটি পরিবর্তন করার চেষ্টা করেছি। স্ক্রিপ্টটি সূক্ষ্ম শুরু হয়, তবে mkdir "$REALMNT"ত্রুটি সহ ব্যর্থ হয় /data/local/userinit.sh[6]: : not found

== EDIT3 ==

আমি জানি যে স্ক্রিপ্টটি কাজ করে না, তাই এটি ঠিক করা আমার প্রশ্নের সমাধান করতে পারে, তবে আমি ভেবেছিলাম যে নিম্নলিখিতটি আকর্ষণীয়। আমি আমার লিনাক্স কম্পিউটারে আমার এসডি কার্ড ফর্ম্যাট করেছি এবং এতে কিছু ফাইল স্থানান্তর করেছি। অদ্ভুতভাবে যথেষ্ট, অনুমতি ত্রুটিগুলি কেবলমাত্র আমি তৈরি করা সাব-ডিরেক্টরিগুলিতেই ঘটে। পার্টিশনের মূলটিতে (মাধ্যমে /storage/sdcard1), ইতিমধ্যে আমার লেখার অনুমতি রয়েছে।


1
রুট হিসাবে, দয়া করে কার্যকর করুন ls -l /mnt/fuse/এবং ls -l /mnt/fuse/sdcard1_real। তারপরে ফলাফলগুলি অন্তর্ভুক্ত করতে আপনার প্রশ্নটি সম্পাদনা করুন। আমার অনুমান "ভুল ফাইল অনুমতি" - হয় মাউন্টের জন্য, বা foo/কার্ডের ডিরেক্টরিতে। মনে রাখবেন, ext4 সম্পূর্ণ * নিক্স ফাইল অনুমতিগুলি সহ সমর্থন করে। ব্যবহারকারী এবং গোষ্ঠী।
ইজি

আপনি suরুট পেতে টার্মিনাল টাইপ করুন । আপনি প্রথমবারের জন্য এটি করছেন তবে আপনাকে ফোনে অনুমতি দেওয়ার বিষয়টি নিশ্চিত করতে হবে।
চক

হয় স্ক্রিপ্ট ব্যর্থ হচ্ছে, বা এটি মোটেই কার্যকর করা হয়নি। আপনি কিছু ডিবাগ আউটপুট যোগ করতে ইচ্ছুক হতে পারেন, উদাহরণস্বরূপ echo Script executed > /mnt/fuse/sdcard1/test.log, এবং এটি আদৌ চলছে কিনা তা পরীক্ষা করে দেখুন। যদি তা হয় তবে পূর্বের থেকে শেষের লাইনটি তৈরি করুন mount -t ext4 /dev/block/mmcblk1p1 "$REALMNT" 2> /mnt/fuse/sdcard1/test.logএবং ত্রুটি বার্তাটি পরীক্ষা করুন। অথবা দেখতে নিজে স্ক্রিপ্ট চালানো: su /data/local/userinit.sh
ইজি

@ আইজি touchদেখায় যে স্ক্রিপ্টটি চলছে। আমি স্ক্রিপ্টটি ম্যানুয়ালি কার্যকর করার চেষ্টা করেছি su /data/local/userinit.sh, কিন্তু এটি ব্যর্থ হয়েছিল। আমিও চেষ্টা su echo foo, এবং একটি অনুরূপ ত্রুটি পাবেন: Unknown id: echo
স্পারহাক

আপনার EDIT3 হিসাবে, আমার প্রথম মন্তব্য দেখুন: ext4 সম্পূর্ণ * নিক্স ফাইল অনুমতি সমর্থন করে, সহ। ব্যবহারকারী এবং গোষ্ঠী । আপনি সেই ডিরেক্টরিগুলি এমন কোনও ব্যবহারকারীকে দিয়ে তৈরি করেছেন যা আপনার অ্যান্ড্রয়েড ডিভাইসে বিদ্যমান নেই, সুতরাং এগুলি "অজানা ব্যবহারকারী / অজানা গ্রুপ" এর অন্তর্ভুক্ত। আপনি যদি "ওয়ার্ল্ড" এ লেখার অ্যাক্সেস না দিয়ে থাকেন তবে কেবলমাত্র সেখানে রুট লিখতে পারে। পোর্টেবল মিডিয়াতে এই জাতীয় ফাইল সিস্টেম ব্যবহার করার সময় আপনার নিজের সেই * নিক্স বেসিকগুলির সাথে নিজেকে পরিচিত করা উচিত;) স্ক্রিপ্ট হিসাবে, আমি আবার আরও কিছু ডিবাগ তথ্য যুক্ত করার পরামর্শ দিই, যেমন echoপ্রতিটি কমান্ড কার্যকর হওয়ার আগে আউটপুট ব্যবহার করা এবং এর মাধ্যমে ত্রুটি আউটপুট পুনর্নির্দেশ করা 2>>
ইজি

উত্তর:


6

ছিল কল্পনানুসারে বেশ কয়েক মাস আগে সুনির্দিষ্ট করা থাকে, কিন্তু মানুষ এখনও সমস্যা প্রতিবেদন করছে। আমি কার্ডে আইটেমগুলি পড়তে পারি, তবে লেখার অনুমতি নেই। এটি ঠিক করার জন্য, আমি কয়েকটি উত্স থেকে কৌশলগুলি একত্রিত করেছি ।

  1. এমএস-ডস পার্টিশন টেবিল এবং এক্সট ৪ ফাইল সিস্টেমের সাথে পার্টিশন কার্ড। আমি আমার (লিনাক্স) ডেস্কটপ কম্পিউটারে জিপিআর্ট ব্যবহার করেছি।
  2. আপনার ফোনে কার্ডটি .োকান। (আপনার এখন সম্ভবত লেখার অ্যাক্সেস থাকবে না))
  3. সায়ানোজেনমডে ডিফল্টরূপে ইনস্টল হওয়া টার্মিনাল এমুলেটরটি খুলুন ।
  4. নিম্নলিখিতটি টাইপ করুন (আমি পাঠ্যের বড় ব্লকের জন্য ওয়াইফাই কীবোর্ডের প্রস্তাব দিই )। যখন এমুলেটরটি তাদের অনুরোধ করে তখন তা মূল সুযোগগুলি দিন।

$এবং #অনুরোধ জানানো ইঙ্গিত, তাই তাদের মধ্যে টাইপ করবেন না।

$ su
# chown media_rw:media_rw /mnt/media_rw/sdcard1
# chmod g+w /mnt/media_rw/sdcard1

এটি এসডি কার্ডের অনুমতিগুলি পরিবর্তন করে। মালিক এবং থেকে গ্রুপ পরিবর্তন systemকরতে media_rw, এবং এটা গ্রুপ লেখার অ্যাক্সেস দেয়।


আবশ্যক -আরসিরিফ চাউনের জন্য -আর মিডিয়া_আরডব্লিউ: মিডিয়া_আরড / এমএনটি / মিডিয়া_আরড / এসডিকার্ড ১
এম 3 আসমি

1

এটি কোনও সহায়তা কিনা তা নিশ্চিত নন, তবে সম্ভবত সমস্যাটি হ'ল আপনি ভুল জায়গায় মাউন্ট করার চেষ্টা করছেন? এটি আমার ওয়ার্কিং স্ক্রিপ্ট যা সিএম 11 সহ একটি এস 3 মিনিতে কাজ করে:

#!/system/bin/sh
REALMNT=/mnt/media_rw/sdcard1
if ! [ -d "$REALMNT" ]; then
mkdir "$REALMNT" || exit 1
fi
mount -t ext4 -o rw,noatime /dev/block/mmcblk1p1 "$REALMNT"
sdcard "$REALMNT" /storage/sdcard1 1023 1023 

REALMNT অবস্থানটি ইতিমধ্যে বিদ্যমান ছিল, সুতরাং অবশ্যই মিকডিরকে কখনও ডাকা হত না। এবং মিডিয়া_আরডাব্লু / এসডিকার্ড 1 এরই মধ্যে মিডিয়া_আরডিয়োর মালিকানাধীন

আমি অন্তর্ভুক্ত করতে /etc/perifications/platform.xML আপডেট করতে হয়েছিল: <group id="media_rw"/> ইন: <permission name="android.permission.WRITE_EXTERNAL_STORAGE">


ধন্যবাদ। আমার স্ক্রিপ্টের সাথে আমার উচ্চ ব্যাটারি ব্যবহার ছিল বলে আমি কিছুটা ছেড়ে দিয়েছি। যেহেতু এটি ট্রাঙ্কে স্থির হয়েছে, তাই আমি আর কোনও কাজের চাপ নিয়ে বিরক্ত করব না। ধন্যবাদ যদিও, এবং +1।
স্পারহাক

@ স্পারহাক: আপনি কোন সিওয়াইএম সংস্করণ ব্যবহার করছেন তা নিশ্চিত নয় তবে আমার এসডি কার্ডটি স্বয়ংক্রিয়ভাবে মাউন্ট করা হয়নি।
লুইস এ ফ্লোরিট

@ লুইসএ.ফ্লোরিট আপনি নিশ্চিত এই উত্তরটির উত্তর দিতে চেয়েছিলেন কিনা তা আমি নিশ্চিত নই । যাইহোক, আমি 11-20140804-SNAPSHOT-M9-i9300 ব্যবহার করছি। আমি অন্য উত্তরে আরও তথ্য পোস্ট করেছি ।
স্পারহাক

@ স্পারহাক: আমার কার্ড এমনকি মাউন্ট করা হয়নি এবং সেটিংসে মাউন্ট পদ্ধতি ব্যর্থ হয়। সম্ভবত প্রোব্ল্যামটি আমার প্রশ্নটি এখানে সম্পর্কিত হয়েছে ( android.stackexchange.com/questions/82089/…su মাউন্ট করতে ব্যর্থ `আমি সেমি 11-1-20140804- এসএনএপিএসএইচটি-এম 9- মন্ড্রিয়ানউইফাই.জিপ ব্যবহার করি।):
লুইস এ ফ্লোরিট

@ LuisA.Florit সত্যিই নিশ্চিত নয়। সম্ভবত একটি নতুন প্রশ্ন জিজ্ঞাসা করুন?
স্পারহাক

0

অ্যাডাসডাসড পোস্ট করেছিলেন এমন একটি উত্তর ছিল যা আমি গ্রহণ করতে চেয়েছিলাম, তবে এটি মুছে ফেলা হয়েছে। আমি এটি নীচে পুনরুত্পাদন করব, এবং আমার উত্তর গ্রহণ করব, তবে যদি অ্যাডসাদাসড পুনরায় উত্থিত হয়, দয়া করে পুনরায় পোস্ট করুন এবং আমি এটি মুছে দেব এবং আপনার গ্রহণ করব।

https://jira.cyanogenmod.org/browse/CYAN-332

https://github.com/CyanogenMod/android_packages_providers_MediaProvider/commit/faf3f77b9222554227740aed8127714ea9e3f407

ডিফল্ট দ্বারা স্থির? গিথুবে নতুন পরিবর্তন।


0

এখানে সরলরেখা

#!/system/bin/sh
REALMNT="/mnt/media_rw/extSdCard"
mount -t ext4 -o rw,noatime /dev/block/mmcblk1p1     "$REALMNT"
sdcard "$REALMNT" /storage/extSdCard 1023 1023 &

এবং এখানে বাহ্যিক এসডি-তে লিখনযোগ্য এক্স 4

#!/system/bin/sh
chown media_rw:media_rw /mnt/media_rw/extSdCard
chmod g+w /mnt/media_rw/extSdCard

আপনার বাহ্যিক এসডিকার্ড মাউন্ট করা যেখানে আপনি "এসডিকার্ড 1" এর মতো "এক্সএসডিকার্ড" পরিবর্তন করতে পারেন

আইম কিংরুটের সাথে স্টক্রাম ব্যবহার করেছিল তবে আমি সুপারসুটিকে মাউন্ট ফাইল সিস্টেমের সাথে ঝামেলা করার চেষ্টা করছি

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