我有一个闪存驱动器,但我不想安装它。相反,我只想用它在计算机之间传输文件。
有没有办法通过设备目录从终端访问闪存驱动器?或者从终端访问闪存驱动器的唯一方法是先安装它,然后访问安装点?
答案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 文件。
完成后,您可能需要格式化闪存驱动器并重新分区等,这对于大型操作来说非常不可行。只需使用文件系统即可。