ls
ডিভাইসটিকে প্রথমে মাউন্ট না করে চালানো কি সম্ভব ?
এটার মতো কিছু:
# ls /dev/sda1
ls
।
ls
ডিভাইসটিকে প্রথমে মাউন্ট না করে চালানো কি সম্ভব ?
এটার মতো কিছু:
# ls /dev/sda1
ls
।
উত্তর:
আপনি e2fsprogs এর debugfs
প্রোগ্রামটি ব্যবহার করতে পারেন । এর historicalতিহাসিক নাম থাকা সত্ত্বেও, এটি ext2 / 3/4 ফাইল সিস্টেমগুলিতে কাজ করবে। ব্যবহার সহজ:
# debugfs -R "ls -l" /dev/sda6
2 40755 (2) 1001 1001 4096 17-Sep-2013 04:03 .
2 40755 (2) 1001 1001 4096 17-Sep-2013 04:03 ..
16 100644 (1) 1001 1001 9085 17-Sep-2013 04:03 avserver.conf
17 100644 (1) 1001 1001 2177 17-Sep-2013 04:03 bash.bashrc
26 100644 (1) 1001 1001 722 17-Sep-2013 04:03 crontab
…
যেখানে "ls -l" একটি debugfs
নির্দিষ্ট কমান্ড যা বেশিরভাগ ক্ষেত্রে পছন্দ করে ls -l
; আপনি সেখানে কোনও নির্বিচারে শেল কমান্ড ব্যবহার করতে পারবেন না। ডিফল্টরূপে, ডিবাগগুলি কেবল পঠন মোডে একটি ড্রাইভ খোলে তাই এটি তুলনামূলকভাবে নিরাপদ; উদাহরণস্বরূপ, একটি অ 2 ext3 / 3/4 পার্টিশনে এটি চেষ্টা করে কেবল একটি ডায়াগোনস্টিক দেয়:
# debugfs -R "ls -l" /dev/sda2
/dev/sda2: Bad magic number in super-block while opening filesystem
ls: Filesystem not open
আমি এই প্রস্তাবিত অনুশীলনটি বিবেচনা করে বলতে পারি না, তবে আপনি যা চান তা তা করবে।
একটি ফাইল সিস্টেম মাউন্ট করার পুরো পয়েন্টটি এর ফাইলগুলি অ্যাক্সেস করা। সুতরাং না, সাধারণভাবে, আপনি কোনও ফাইল সিস্টেমের ফাইলগুলি মাউন্ট না করে অ্যাক্সেস করতে পারবেন না।
কয়েকটি ইউটিলিটি রয়েছে যা মাউন্ট ছাড়াই সরাসরি কোনও ফাইল অ্যাক্সেস করতে পারে, যেমন ext2 / ext3 / ext4 ফাইল সিস্টেমের জন্য ডিবাগ এবং FAT ফাইল সিস্টেমের জন্য mtools ।
একটি ext2 / ext3 / ext4 এর জন্য, বিপজ্জনক এবং শক্তিশালী প্রোগ্রাম ব্যবহারের পরিবর্তে debugfs
, আপনি এর শেষ মাউন্ট অবস্থানটি তালিকাভুক্ত করতে পারেন:
tune2fs -l /dev/sda1 | grep 'Last mounted'
তবে এটি কেবলমাত্র কার্যকর যদি শেষ মাউন্ট অবস্থানটি রেকর্ড করা থাকে।
বেশিরভাগ ফাইল-সিস্টেম প্রকারগুলি ফাইল-সিস্টেম লেবেলগুলি সরবরাহ করে (যেমন tune2fs -L foo
)। সুতরাং আপনার সমস্ত ফাইল সিস্টেমকে একটি অনন্য লেবেল দিন। তারপরে ফাইল সিস্টেমটি লেবেল দ্বারা মাউন্ট করুন:
mount /dev/disks/by-label/foo /media/foo
অথবা
mount LABEL=foo /media/foo
সহজ উত্তর: আপনি পারবেন না। ls
স্ট্যান্ডার্ড libc রুটিনগুলি ব্যবহার করে যা ফাইল সিস্টেম ড্রাইভার দ্বারা পরিবেশন করা সিস্টেম কলগুলিতে অনুবাদ করে, সুতরাং ls
ফাইল সিস্টেমটি মাউন্ট না করেই (বা সেই বিষয়গুলির জন্য সিস্টেম কলগুলি ব্যবহার করে কিছু ব্যবহার করা) সম্ভব নয় ।
আপনি এমন একটি ইউটিলিটি লিখতে পারেন যা ফাইল সিস্টেম ড্রাইভারের নিজস্ব কিছু অংশের নিজস্ব অনুলিপি (যেমন উইন্ডোজ থেকে Ext2 ফাইল সিস্টেমগুলি পড়ার জন্য উপস্থিত রয়েছে) ব্যবহার করে এটি অবরুদ্ধ হবে, তবে এটি বেশ অবৈধ।
আপনার সমস্যাটি যদি কেবলমাত্র পার্টিশন সনাক্ত করে থাকে, আপনার সম্ভবত জিপিটি ব্যবহার করা শুরু করা উচিত যা পার্টিশন নামের (পার্টিশন প্রতি 72 বাইট) জন্য স্থান রয়েছে। কিছু ওভারলাইং সলিউশন (উদাহরণস্বরূপ লিনাক্স এমডি বা এলভিএম) নামকরণের অনুমতি দেয়।
পূর্বে বর্ণিত হিসাবে, ডিবাগগুলি ভাল কাজ করে।
debugfs -R "ls -l" /dev/sda1
এনটিএফএসের জন্য, এনটিএফএস -3 জি থেকে এনটিএফএসএসএল আছে।
ntfsls /dev/sda2
ফ্যাট-এর জন্য, মডুলগুলি থেকে এমডিআর রয়েছে।
mdir -i /dev/sdc1
এক্সএফএটি-তে আমি যদিও নিশ্চিত নই। দেখে মনে হচ্ছে এক্সফ্যাট-ইউটিজে উপরে বর্ণিতগুলির মতো কোনও সরঞ্জাম অন্তর্ভুক্ত নেই। যদিও ডাম্পেক্সফ্যাট রয়েছে, তবে আমি মনে করি না যে এটি জিজ্ঞাসিত তথ্য সরবরাহ করবে।
সংযুক্ত ড্রাইভ সম্পর্কে আরও বিশদ জানতে, lsblk রয়েছে।
lsblk
ব্যক্তিগতভাবে আমি এটি পছন্দ করি এবং এর জন্য একটি উপকরণ সেট করেছি:
alias lsblk="lsblk -o MODEL,TRAN,NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MAJ:MIN"