如何编写脚本以识别和操作终端中的特定驱动器?

时间:2018-07-01 06:48:33

标签: linux shell terminal

我正在尝试编写一个简短的脚本,该脚本可以自动卸载并重新安装分区,而无需知道驱动器的当前安装位置。

以下命令对我有用:

sudo umount /dev/sdX
sudo mount -t ntfs /dev/sdX /mnt/rec

问题是,我正在实时运行Linux,无法将其安装在硬盘上。这样,每当我重新启动计算机时,/ dev / sdX有时会挂载为/ dev / sdb或/ dev / sdd。因此,我不能只运行脚本来自动将驱动器安装到需要的位置,而无需使用

sudo fdisk -l

为了验证驱动器当前的安装方式。

我的问题是:有没有一种方法可以识别与当前安装位置无关的驱动器?

1 个答案:

答案 0 :(得分:2)

是的!

直到2005年左右,这一直是一个令人讨厌的问题,但是由于.onErrorResumeNext(throwable -> { if (throwable instanceof ProviderNotReachableException) { return Observable.error(new MyCustomException()); } else { return Observable.error(throwable); } }); ,现在可以访问基于设备无关的标识符的设备。

请检出udev,以了解各种独立于其/dev/disk/名称的分区自动分类方式:

/dev/sd*

这些都是到其支持设备的完全透明的符号链接,因此您可以轻松查看它们对应的内容:

$ find /dev/disk/
/dev/disk/by-uuid
/dev/disk/by-uuid/d7a395e4-e6fd-49bc-bbd9-af9c6a43211d
/dev/disk/by-partuuid
/dev/disk/by-partuuid/4434a42f-01
/dev/disk/by-path
/dev/disk/by-path/acpi-VMBUS:01-scsi-0:0:0:0-part1
/dev/disk/by-path/acpi-VMBUS:01-scsi-0:0:0:0
/dev/disk/by-path/pci-0000:00:07.1-ata-2
/dev/disk/by-id
/dev/disk/by-id/wwn-0x600224805c60e27d40a2d50b3961022c-part1
/dev/disk/by-id/scsi-3600224805c60e27d40a2d50b3961022c-part1
/dev/disk/by-id/wwn-0x600224805c60e27d40a2d50b3961022c
/dev/disk/by-id/scsi-3600224805c60e27d40a2d50b3961022c
/dev/disk/by-id/ata-Virtual_CD

$ ls -l /dev/disk/by-uuid/d7a395e4-e6fd-49bc-bbd9-af9c6a43211d lrwxrwxrwx 1 root root 10 May 28 10:38 /dev/disk/by-uuid/d7a395[..] -> ../../sda1 条目通常是最好的选择,但是by-uuidpartuuid对于较少使用Linux的文件系统也可能有用。