簡體   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