linux – 获取有关当前未安装驱动器的信息的最佳方法是什么?

linux – 获取有关当前未安装驱动器的信息的最佳方法是什么?,第1张

概述首先,情况:我有一台带有两个eSATA驱动器托架的 Linux计算机,可以接受可移动的SSD驱动器.我正在尝试编写一个小的GUI应用程序,使用户可以更轻松地安装/卸载/格式化/备份/等他放入这些托架的驱动器. 这一切都很有效.然而,一个小问题是,在成功安装驱动器之前,我不知道如何找到有关插入驱动器上的内容的任何信息. 因此,例如,如果用户插入我无法安装的驱动器(例如,因为它未格式化,或使用意外的文 首先,情况:我有一台带有两个eSATA驱动器托架的 Linux计算机,可以接受可移动的SSD驱动器.我正在尝试编写一个小的GUI应用程序,使用户可以更轻松地安装/卸载/格式化/备份/等他放入这些托架的驱动器.

这一切都很有效.然而,一个小问题是,在成功安装驱动器之前,我不知道如何找到有关插入驱动器上的内容的任何信息.

因此,例如,如果用户插入我无法安装的驱动器(例如,因为它未格式化,或使用意外的文件系统格式化),我的所有应用程序都可以说它是“驱动器无法安装”.

这不是很令人满意,因为如果驱动器未格式化,用户可能希望格式化它…但如果驱动器包含来自无法识别的文件系统的数据,则用户可能不想格式化它….或者至少,我希望能够警告他,通过这样做,他将删除可能有价值的数据.

所以我的问题是:是否有任何方法可以从不需要已安装驱动器的驱动器查询一些基本信息(特别是文件系统类型)?或者我只需要尝试使用各种已知的文件系统挂载它,直到其中一个挂载尝试成功,并且如果它们都没有,则给出一个模糊的“小心”消息?

如果重要,我用来在驱动器托架中安装驱动器的路径是:

/dev/disk/by-path/pci-0000:00:1f.2-scsi-2:0:0:0/dev/disk/by-path/pci-0000:00:1f.2-scsi-1:0:0:0
解决方法 如果卸载驱动器,您可以执行几项 *** 作.

您可以使用fdisk -l或sfdisk -l之类的命令列出分区.如果分区设置正确,那么只是分区类型可能会给你一些有用的信息

# sfdisk -ldisk /dev/sda: 4177 cylinders,255 heads,63 sectors/trackUnits = cylinders of 8225280 bytes,blocks of 1024 bytes,counting from 0   Device Boot Start     End   #cyls    #blocks   ID  System/dev/sda1   *      0+     30      31-    248976   83  linux/dev/sda2         31    4176    4146   33302745   8e  linux LVM/dev/sda3          0       -       0          0    0  Empty/dev/sda4          0       -       0          0    0  Empty

如果它存在于您的系统上,您可以对分区使用命令vol_id来返回一些有用的详细信息(Debian上的udev包的一部分).这通常会告诉您实际使用的文件系统.

# vol_ID /dev/sda1ID_FS_USAGE=filesystemID_FS_TYPE=ext3ID_FS_VERSION=1.0ID_FS_UUID=32c44d53-9025-4d10-8f36-75c166547bd5ID_FS_UUID_ENC=32c44d53-9025-4d10-8f36-75c166547bd5ID_FS_LABEL=ID_FS_LABEL_ENC=ID_FS_LABEL_SAFE=

命令lshw -class disk将为您提供有关驱动器类型的一些详细信息.如果您对驱动器的实际序列号感到好奇,可能需要使用它.

# lshw -class disk  *-disk       description: ATA disk       product: VBox HARDdisK       physical ID: 0.0.0       bus info: scsi@0:0.0.0       logical name: /dev/sda       version: 1.0       serial: VB169e93fb-d1e0fd97       size: 32GiB (34GB)       capabilitIEs: partitioned partitioned:dos       configuration: ansiversion=5 signature=000d39f8

如果你确定有一个特定的文件系统,如ext2 / 3,那么你可以使用特定于文件系统的tune2fs工具来检查更多细节.

# tune2fs -l /dev/sda1tune2fs 1.41.3 (12-Oct-2008)filesystem volume name:   <none>Last mounted on:          <not available>filesystem UUID:          8cbdf102-05c7-4ae4-96ea-681cf9b11914filesystem magic number:  0xEF53filesystem revision #:    1 (dynamic)filesystem features:      filetype sparse_superDefault mount options:    (none)filesystem state:         not cleanErrors behavior:          Continuefilesystem OS type:       linuxInode count:              124496Block count:              248976Reserved block count:     12448Free blocks:              212961Free inodes:              124467First block:              1Block size:               1024Fragment size:            1024Blocks per group:         8192Fragments per group:      8192Inodes per group:         4016Inode blocks per group:   502Last mount time:          Thu Oct  7 15:34:42 2010Last write time:          Thu Oct  7 15:34:42 2010Mount count:              4Maximum mount count:      30Last checked:             Wed Sep 15 09:29:03 2010Check interval:           0 (<none>)Reserved blocks uID:      0 (user root)Reserved blocks gID:      0 (group root)First inode:              11Inode size:           128

另一个有用的工具是lsblk.

# lsblk name                MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTsda                   8:0    0    30G  0 disk └─sda1                8:1    0    30G  0 part   ├─vg1-root (dm-0) 254:0    0  23.3G  0 lvm  /  └─vg1-swap (dm-1) 254:1    0   1.9G  0 lvm  [SWAP]sr0                  11:0    1  1024M  0 rom

如果你已经安装了parted,你可以运行这样的命令

parted /dev/sda print allModel: ATA VBox HARDdisK (scsi)disk /dev/sda: 34.4GBSector size (logical/physical): 512B/512BPartition table: msdosNumber  Start   End     Size    Type     file system  Flags 1      32.3kB  255MB   255MB   primary  ext2         boot  2      255MB   34.4GB  34.1GB  primary               lvm  Model: linux device-mapper (linear) (dm)disk /dev/mapper/vg1root: 32.6GBSector size (logical/physical): 512B/512BPartition table: loopNumber  Start  End     Size    file system  Flags 1      0.00B  32.6GB  32.6GB  ext3

无论如何,我建议你看看udev或parted来源.

总结

以上是内存溢出为你收集整理的linux – 获取有关当前未安装驱动器的信息的最佳方法是什么?全部内容,希望文章能够帮你解决linux – 获取有关当前未安装驱动器的信息的最佳方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1045696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存