繁体   English   中英

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

[英]How do I write a script to identify and manipulate a specific drive in the terminal?

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

以下命令对我有用:

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

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

sudo fdisk -l

为了验证当前安装的驱动器是什么。

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

是!

直到2005年左右,这一直是一个令人烦恼的问题,但是由于使用了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-uuid条目是您最好的选择,但是partuuidlabel对于较少的Linux-y文件系统也可能有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM