Belirli bir cihazın bir USB yığın depolama alanı olup olmadığını öğrenin


10

bağlam

SD kart görüntülemeyi mevcut bir ddfabrika görüntüsünden otomatikleştiriyorum. SD kart her zaman harici bir USB kart okuyucu ile bağlanır ve bu nedenle sistemde bir SCSI blok cihazı olarak görünür /dev/sd*.

Şu anda komutumun sözdizimi: SD kart blok cihazı write-image DEVICEnerede DEVICE, ör. /dev/sdd.

Sorun

DEVICEFormda olduğunu doğrulamak için zaten temel bir kontrol yapıyorum /dev/sd*ama bu yeterli değil: Kullanıcılardan (Linux için kullanılmayan üretim insanları) bir hata yapmaktan ve görünüşte geçerli başka bir cihaz belirtmekten korkuyorum. /dev/sda. Belirgin felaketi görebilirsiniz, özellikle görüntüleme komut dosyam kök ayrıcalıklarına ihtiyaç duyduğundan (görüntünün kendisini yazmak değil, size dikkat etmek, ancak SD kartın SD kartın gerçek boyutuna bağlı olarak bir bölümün boyutunu ayarlamak da dahil olmak üzere SD kartı değiştirmek için) ...

Soru

Belirtilen cihazın gerçekte bazı USB yığın depolama alanı olduğunu (veya en azından çıkarılabilir bir cihaz) doğrulamak istiyorum, böylece sistem disklerini yanlışlıkla çöpe atmaya karşı koruyabilirim. Bunu nasıl yapabilirim?

/procWeb'de veya web üzerinde alakalı hiçbir şey bulamadım , şimdi oldukça kayboluyorum.

Yanıtlar:


10

/sys/Dizinin altına bir göz atın . Özellikle, /sys/block/içindeki cihazları engellemek için sembolik bağlantılar içerir /sys/devices/.

/sys/block/sdX/removableçıkarılabilir bir cihaz için 1, aksi takdirde 0 olarak okunacak gibi görünüyor. Bu, çıkarılabilirlik için temel bir kontrol sağlar.

Bir USB cihazı olup olmadığını kontrol etmenin daha iyi bir yolu olup olmadığından emin değilim, ancak readlink /sys/block/sdeböyle bir şey tükürecek ../devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1.2/6-1.2:1.0/host7/target7:0:0/7:0:0:0/block/sde. usb*Klasör içerip içermediğini kontrol etmek basit bir kontrol olarak işe yarayabilir.

Satıcı ve model gibi diğer cihaz detaylarını da alabilirsiniz /sys/block/sdX/device/, bu da kullanışlı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.