লিনাক্স মেশিনের সাথে সংযুক্ত সমস্ত স্টোরেজ ডিভাইসগুলি [বন্ধ] সন্ধান করুন


109

আমার দেওয়া লিখিত মেশিনের সাথে সংযুক্ত লিখিত সমস্ত স্টোরেজ ডিভাইসগুলির সন্ধান করা দরকার, সেগুলি মাউন্ট করা আছে কি না

এটি করার ডোপাইয়ের উপায় হ'ল লিখিত ডিভাইসগুলির সাথে মিলিত প্রতিটি প্রবেশের চেষ্টা করা/dev ( hd* and sd*) ......

এর চেয়ে ভাল সমাধান কি আছে, নাকি আমার এটার সাথেই লেগে থাকা উচিত?


সব ধরণের সংযুক্ত ডিভাইস সম্পর্কে কার্নেলকে জিজ্ঞাসা করার প্রস্তাবিত উপায় libsysfs ব্যবহার করুন ।
ডেভিড স্মিট

যেহেতু আপনি তাদের সম্পর্কে বলছেন যে সম্ভবত মাউন্ট করা হচ্ছে, আমার ধারণা আপনি কেবল ডিস্কের নয়, পার্টিশনের একটি তালিকা চান?
মার্ক বাকের

পার্টিশনগুলিও ঠিক আছে, হ্যাঁ :) .. পার্টিশনগুলি যদি আমি জানতাম তবে আমি কী শারীরিক ডিভাইসগুলি উপলব্ধ তাও জানব
ওয়ারেন

2
যেহেতু ইউনিক্স এবং লিনাক্স এখন উপলভ্য, তাই এই প্রশ্নটি সেখানে স্থানান্তরিত হওয়া উচিত
ওয়ারেন

3
@ ওয়ারেন - ওহ না তাদের এখনও বন্ধ করা উচিত। পোস্টের মালিক হিসাবে আপনি যেহেতু এই সরানো চান তা আপনার এটি নিয়ন্ত্রণকারীদের মনোযোগের জন্য পতাকাঙ্কিত করা উচিত। আপনি এটি সরানো চান এমন সত্যটি কিছুটা ওজন বহন করবে।
ChrisF

উত্তর:


79

/proc/partitionsসিস্টেমটি স্বীকৃত সমস্ত ব্লক ডিভাইস এবং পার্টিশনের তালিকা তৈরি করবে। এরপরে file -s <device>পার্টিশনে কোন ধরণের ফাইল সিস্টেম উপস্থিত রয়েছে তা নির্ধারণের জন্য আপনি চেষ্টা করতে পারেন , যদি থাকে তবে।


4
উদাহরণস্বরূপ এটি সিডি / ডিভিডি ড্রাইভ বাদ দেয় (আমি জানি তারা সাধারণত
লেখার যোগ্য

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

5
lsblk এটি আরও ভাল
emj365

1
/ proc / পার্টিশন আপনাকে সাইগউইন-এ ড্রাইভ লেটারও দেয়।
কাত্রিয়েল

72

আপনি সর্বদা এটি করতে পারেন fdisk -lযা ইসি 2 এক্সভিডিএ ডিভাইসের মতো অদ্ভুত সেটআপগুলিতে এমনকি বেশ ভালভাবে কাজ করে বলে মনে হচ্ছে।

এখানে এম 1 লার্জ উদাহরণের জন্য একটি ডাম্প রয়েছে:

root@ip-10-126-247-82:~# fdisk -l

Disk /dev/xvda1: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 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
Disk identifier: 0x00000000

Disk /dev/xvda1 doesn't contain a valid partition table

Disk /dev/xvda2: 365.0 GB, 365041287168 bytes
255 heads, 63 sectors/track, 44380 cylinders, total 712971264 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
Disk identifier: 0x00000000

Disk /dev/xvda2 doesn't contain a valid partition table

Disk /dev/xvda3: 939 MB, 939524096 bytes
255 heads, 63 sectors/track, 114 cylinders, total 1835008 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
Disk identifier: 0x00000000

Disk /dev/xvda3 doesn't contain a valid partition table

যদিও mountবলেছেন:

root@ip-10-126-247-82:~# mount
/dev/xvda1 on / type ext4 (rw)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/xvda2 on /mnt type ext3 (rw)

এবং /proc/partitionsবলেছেন:

root@ip-10-126-247-82:~# cat /proc/partitions
major minor  #blocks  name

 202        1   10485760 xvda1
 202        2  356485632 xvda2
 202        3     917504 xvda3

সাইড নোট

কীভাবে fdisk -lকাজ করে এমন কিছু আমি নিজেকে জানতে পছন্দ করব।


9
আপনি কীভাবে কীভাবে কাজ করে তা নির্ধারণ করেছেন কিনা তা নিশ্চিত নয় fdisk -lতবে আমি ভেবেছিলাম আপনি জানতে পছন্দ করতে পারেন: এটি পড়তে /proc/partitionsএবং তারপরে পুনরাবৃত্তি করে /sys/dev/block/*যার মাধ্যমে ডিভাইসগুলির সিএসলিঙ্কগুলিতে সিএসফিসে সত্যিকারের রেপির প্রতিলিপি রয়েছে contains আপনি :) এর fdiskঅধীনে চালিয়ে এই তথ্যটি খুঁজে পেতে পারেনstrace

1
গ্রেট! ধন্যবাদ। (ওটি: এই প্রশ্নটি লক করা দেখতে ব্যর্থ হয়। "লকটি রিভার্ট করার জন্য ভোট" হওয়া উচিত)।
ম্যাক্সিম ভেক্সলার

1
3k প্রতিনিধি এবং উচ্চতর (একটি "পুনরায় খুলুন" বোতাম) ব্যবহারকারীদের জন্য রয়েছে।

ওহ সত্যিই? তারপরে আমাকে অবশ্যই তত দ্রুত 3 কে যেতে হবে।
ম্যাক্সিম ভেক্সলার

হ্যাঁ, আপনি আরও খ্যাতি পেতে পারেন এমন সামগ্রীর সম্পূর্ণ তালিকার জন্য সুবিধাগুলি পৃষ্ঠাটি দেখুন।

35

আপনি lsblk চেষ্টা করে দেখতে পারেন ... ইউটি-লিনাক্সে রয়েছে ... তবে আমারও একটি প্রশ্ন আছে

fdisk -l /dev/sdl

কোন ফল

grep sdl /proc/partitions      
   8      176   15632384 sdl
   8      177   15628288 sdl1

lsblk | grep sdl
sdl       8:176  1  14.9G  0 disk  
`-sdl1    8:177  1  14.9G  0 part  

fdisk ভাল তবে ভাল না ... মনে হচ্ছে এটি সবকিছু "দেখতে" পারে না

আমার বিশেষ উদাহরণে আমার কাছে একটি স্টিক রয়েছে যার মধ্যে একটি কার্ড রিডারও রয়েছে এবং আমি এফডিস্ক ব্যবহার করে কেবল লাঠিটি দেখতে পাচ্ছি:

fdisk -l /dev/sdk

Disk /dev/sdk: 15.9 GB, 15931539456 bytes
255 heads, 63 sectors/track, 1936 cylinders, total 31116288 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
Disk identifier: 0xbe24be24

   Device Boot      Start         End      Blocks   Id  System
/dev/sdk1   *        8192    31116287    15554048    c  W95 FAT32 (LBA)

তবে কার্ডটি নয় (কার্ডটি হচ্ছে / dev / sdl)

এছাড়াও, ফাইল-গুলি অদক্ষ ...

file -s /dev/sdl1
/dev/sdl1: sticky x86 boot sector, code offset 0x52, OEM-ID "NTFS    ", sectors/cluster 8, reserved sectors 0, Media descriptor 0xf8, heads 255, hidden sectors 8192, dos < 4.0 BootSector (0x0)

এটা দুর্দান্ত ... তবে

fdisk -l /dev/sdb
/dev/sdb1            2048   156301487    78149720   fd  Linux raid autodetect
/dev/sdb2       156301488   160086527     1892520   82  Linux swap / Solaris

file -s /dev/sdb1
/dev/sdb1: sticky \0

fdisk দ্বারা অ্যাক্সেস করা যায় না এমন ডিস্কের তথ্য দেখতে আপনি পার্টড ব্যবহার করতে পারেন:

parted /dev/sdl print

Model: Mass Storage Device (scsi)
Disk /dev/sdl: 16.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  16.0GB  16.0GB  primary  ntfs




arted /dev/sdb print 
Model: ATA Maxtor 6Y080P0 (scsi)
Disk /dev/sdb: 82.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  80.0GB  80.0GB  primary                  raid
 2      80.0GB  82.0GB  1938MB  primary  linux-swap(v1)

9

ls /sys/block


পার্টিশন তালিকা করে না। আমি নিশ্চিত নই যে এটিই মূল প্রশ্নটি চেয়েছিল কিনা।
মার্ক বাকের

1
আমি কখনই / সিএস / ব্লক সম্পর্কে জানতাম না - যদিও এটি ডিভিডি ড্রাইভের মতো রাইটিংযোগ্য নয় এমন ডিভাইসগুলির তালিকাও দেয়
ওয়ারেন

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

3
মোছা, আপনি নিজের উত্তরটি কিছুটা প্রসারিত করবেন না কেন?
চামচমিজার

2
@ ওয়ারেন - সম্ভবত / দেব / ডিভিডি হ'ল একটি / ডিভ / এসডি * বা / দেব / এইচডি * ডিভাইসের জন্য একটি এলিয়াস হয়ে যাবে, সুতরাং যাইহোক আপনার এই সমস্যাটি হত।
চাঁদমিশার

7

এইচএল ব্যবহার করে (কার্নেল ২.6.১ and এবং তার বেশি):


#! /bin/bash
hal-find-by-property --key volume.fsusage --string filesystem |
while read udi ; do
    # ignore optical discs
    if [[ "$(hal-get-property --udi $udi --key volume.is_disc)" == "false" ]]; then
        dev=$(hal-get-property --udi $udi --key block.device)   
        fs=$(hal-get-property --udi $udi --key volume.fstype) 
        echo $dev": "$fs
    fi 
done

4

আধুনিক লিনাক্স সিস্টেমে সাধারণত বিদ্যমান ডিভাইসের জন্য / ডিভ মধ্যে কেবল প্রবেশ থাকবে, সুতরাং আপনার পরামর্শ অনুসারে এইচডিএ * এবং এসডিএ * এর মধ্য দিয়ে যাওয়া মোটামুটি ভালভাবে কাজ করবে।

অন্যথায়, আপনি / প্রোকে কিছু ব্যবহার করতে পারেন be সেখানে তাত্ক্ষণিকভাবে নজর রেখে, আমি বলেছি / proc / পার্টিশনগুলি দেখে মনে হচ্ছে এটি আপনার যা প্রয়োজন তা করতে পারে।


2

libsysfs সম্ভাব্যভাবে দরকারী মনে হয়, তবে সরাসরি শেল স্ক্রিপ্ট থেকে নয়। এটির সাথে সিস্টুল নামে একটি প্রোগ্রাম আসে যা আপনি যা চান তা করবে, যদিও এটি আপনার জন্য অন্য কোনও প্রোগ্রাম ব্যবহার না করে কেবল সরাসরি / সিসে সন্ধান করা সহজ হতে পারে।

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