從終端存取設備

從終端存取設備

我有一個我不想安裝的閃存驅動器。相反,我只想用它在我的計算機之間傳輸文件。

有沒有辦法可以透過裝置目錄從終端存取我的隨身碟?或者是從終端存取閃存驅動器的唯一方法是先安裝它,然後訪問安裝點?

答案1

如果不先安裝驅動器,您將無法存取任何形式的儲存媒體。但是,您可以從終端完成整個過程。

首先,您需要分區 ID ( /dev/sdXY)。您可以使用該lsblk命令來查找它。一旦你有了這個 ID,你就可以運行sudo mount /dev/sdXY /mnt.您的隨身碟的檔案系統現在將在終端上可用/mnt並可從終端使用。

中的設備/dev稱為區塊設備,是這些設備中包含的檔案系統的原始表示(如果適用)。雖然您可以直接從這些裝置讀取和寫入,但這通常是一個壞主意,因為您忽略了龐大的檔案系統抽象化和保護層。

對於大多數用例,您唯一一次讀取/寫入原始區塊設備是為了克隆或非常低階設備操作。檔案系統提供了一個巨大的抽象層、錯誤檢查和檔案安全性。


筆記:此文本區塊下方的部分僅用於教育目的。請不要在您關心的任何系統/驅動器上嘗試此操作,因為結果很容易是災難性的。如果您遵循我下面所說的任何內容,我對您的行為不承擔任何責任。

你被警告了。

有了這個警告,如果您不關心閃存驅動器的內容,理論上可以使用原始區塊操作從閃存驅動器讀取和寫入資料。

最簡單的是,您可以使用以下命令將檔案(比方說files.zip)寫入快閃磁碟機:

dd if=files.zip of=/dev/sdd bs=1024

這會將 zip 檔案複製到快閃磁碟機的原始區塊,但也會(可能)損壞磁碟機上目前的任何分割區或相關資料。它還會記錄有多少“塊”被寫入驅動器——記下這一點。對於這個例子,我會說複製了 1234 個區塊。

當您想要將隨身碟中的檔案讀取到另一台電腦上時,可以使用反向命令來執行此操作:

dd if=/dev/sdd of=files.zip count=1234 bs=1024

這將從磁碟機(包含 ZIP 檔案)中提取前 1234 個區塊的原始區塊數據,並將其寫入files.zip電腦的當前目錄中。另請注意,由於檔案末尾的損壞/垃圾資料或類似情況,該 ZIP 檔案實際上可能無法讀取。如有必要,請務必注意這一點。如果需要,您可以使用該head命令來修剪 ZIP 檔案。

完成後,您可能需要格式化隨身碟並重新分割區等,這對於大型操作來說非常不可行。只需使用檔案系統即可。

相關內容