准备

  • U盘,读卡器,移动硬盘等,需要FAT32FAT16等非NTFS格式的文件系统,除非linux安装了支持NTFS文件系统的软件包(大部分发行版没有安装)。
  • linux安装好fdisk工具,一般大多数发行版都会有。

开始

先检查本地的磁盘的情况

$ sudo fdisk -l

注意这个命令需要root权限,将显示如下内容,以我的树莓派为例:

Disk /dev/loop0: 48.86 MiB, 51212288 bytes, 100024 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 48.95 MiB, 51302400 bytes, 100200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 61.61 MiB, 64589824 bytes, 126152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop3: 28.5 MiB, 29413376 bytes, 57448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop4: 61.7 MiB, 64675840 bytes, 126320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop5: 26.102 MiB, 28307456 bytes, 55288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mmcblk0: 119.38 GiB, 128177930240 bytes, 250347520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4ec8ea53

Device         Boot  Start       End   Sectors   Size Id Type
/dev/mmcblk0p1 *      2048    526335    524288   256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      526336 250347486 249821151 119.1G 83 Linux

这些loop*的磁盘都是不需要管的,只需要看mmcblk0p这一个设备,这是树莓派的内存卡整个,上面显示了全部空间是119.38GIB的空间。

最后接下来是最后一段:

······
Device         Boot  Start       End   Sectors   Size Id Type
/dev/mmcblk0p1 *      2048    526335    524288   256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      526336 250347486 249821151 119.1G 83 Linux

这是mmcblk0p的分区,可以看到一共分了两个,

  • 一个是256M的boot分区,设备名是/dev/mmcblk0p1,挂载在了/boot文件夹下,文件系统是FAT32格式。
  • 第二个就是/dev/mmcblk0p1,挂载了根目录/

插入存储设备

插入之后,等待几十秒,再运行fdisk命令,查看设备列表有没有新的出来:

[email protected]:~$ sudo fdisk -l
Disk /dev/loop0: 48.86 MiB, 51212288 bytes, 100024 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 48.95 MiB, 51302400 bytes, 100200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 61.61 MiB, 64589824 bytes, 126152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop3: 28.5 MiB, 29413376 bytes, 57448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop4: 61.7 MiB, 64675840 bytes, 126320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop5: 26.102 MiB, 28307456 bytes, 55288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mmcblk0: 119.38 GiB, 128177930240 bytes, 250347520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4ec8ea53

Device         Boot  Start       End   Sectors   Size Id Type
/dev/mmcblk0p1 *      2048    526335    524288   256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      526336 250347486 249821151 119.1G 83 Linux


Disk /dev/sdb: 14.86 GiB, 15931539456 bytes, 31116288 sectors
Disk model: MassStorageClass
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xbea4fc50

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1        8192 31116287 31108096 14.9G  c W95 FAT32 (LBA)

对比插入之前,最后面出现了一个disk名为/dev/sdb的设备,大小为14.86GiB,正是插入U盘的真实空间大小。

/dev/sdb这个设备下面,只有一个磁盘分区,就是/dev/sdb1。我们就是需要这个设备名来挂载到我们的文件夹中,就可以对这个磁盘分区进行访问。

挂载

我们需要创建一个空的文件夹,可以在根目录下的/mnt或者home目录下建一个mnt文件夹。

$ mkdir ~/mnt #在用户主目录下创建mnt文件夹
$ mkdir /mnt #这个文件夹一般都是存在的,如果没有可以新建,但是不建议在这里挂载U盘
$ sudo mount /dev/sdb1 ~/mnt #挂载,注意,这一步需要root权限

以树莓派为例:

[email protected]:~$ sudo mount /dev/sdb1 mnt
[email protected]:~$ ls mnt
'System Volume Information'

可以看到,U盘中的/dev/sdb1分区成功挂载到了~/mnt文件夹,mnt文件夹里面的所有文件都将是U盘的实际文件,可以对里面的文件进行读写,就像一个磁盘的一样。mnt文件夹的空间不受本地磁盘的空间影响,只和U盘的分区有关。

【实例】拷贝文件到U盘,并到windows电脑下查看

也就是和普通win系统的操作一样了,复制文件到U盘,在到win系统里面查看。

以我是树莓派为例:

[email protected]:~$ ls -l #查看当前目录下的文件以及文件夹
total 48
drwxr-xr-x 2 ubuntu ubuntu  4096 Mar 27 16:04 clash	#这是我需要复制到U盘的文件夹
drwxr-xr-x 3 root   root   32768 Jan  1  1970 mnt	#这是U盘挂载的文件夹
drwxrwxr-x 8 ubuntu ubuntu  4096 Apr  4 14:09 myblog
-rw-rw-r-- 1 ubuntu ubuntu    96 Apr  3 16:05 sudo
drwxr-xr-x 2 root   root    4096 Apr  1 21:55 suse
[email protected]:~$ ls clash/	#查看clash文件夹下的内容,以便在之后在win上核对
clash-linux-armv8  logs
[email protected]:~$ sudo cp -r clash mnt	#复制clash文件夹到mnt文件夹中,代表clash文件夹复制到U盘中
[email protected]:~$ ls mnt
'System Volume Information'   clash	#clash出现在了mnt文件夹中,说明已经复制成功
[email protected]:~$ ls mnt/clash #查看clash文件夹的内容是否存在
clash-linux-armv8  logs

ok,mnt文件夹已经成功复制了clash文件夹,以及其中的文件。下面我们需要在win系统下直接看看是什么样子的。

移除U盘之前,只需要解除挂载即可

[email protected]:~$ sudo umount /dev/sdb1	#卸载sdb1设备,不需要加挂载的文件夹
[email protected]:~$ ls mnt #查看mnt文件夹,之前U盘的内容以及消失不见,变成之前的空文件夹
[email protected]:~$ 

之后,可以直接拔出U盘。

插入win电脑,在文件管理器中查看:

直接可以看见