我正在尝试编写一个简短的脚本,该脚本可以自动卸载并重新安装分区,而无需知道驱动器的当前安装位置。
以下命令对我有用:
sudo umount /dev/sdX
sudo mount -t ntfs /dev/sdX /mnt/rec
问题是,我正在实时运行Linux,无法将其安装在硬盘上。这样,每当我重新启动计算机时,/ dev / sdX有时会挂载为/ dev / sdb或/ dev / sdd。因此,我不能只运行脚本来自动将驱动器安装到需要的位置,而无需使用
sudo fdisk -l
为了验证驱动器当前的安装方式。
我的问题是:有没有一种方法可以识别与当前安装位置无关的驱动器?
答案 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-uuid
和partuuid
对于较少使用Linux的文件系统也可能有用。