Linux存储媒介devmount
Linux 存储媒介dev mount
挂载和卸载存储设备
管理存储设备的第一步是把设备连接到文件系统树中。这个叫做”挂载”
有一个叫做/etc/fstab 的文件可以列出系统启动时要挂载的设备。大多数文件系统是虚拟的,还有实际存在的硬盘分区

| 字段 | 内容 | 说明 |
|---|---|---|
| 1 | 设备名 | |
| 2 | 挂载点 | 设备所连接到的文件系统树的目录。 |
| 3 | 文件系统类型 | Linux 允许挂载许多文件系统类型。**大多数本地的 Linux 文件系统是 ext3, **但是也支持很多其它的,比方说 FAT16 (msdos), FAT32 (vfat),NTFS (ntfs),CD-ROM (iso9660),等等。 |
| 4 | 选项 | 文件系统可以通过各种各样的选项来挂载。 |
| 5 | 频率 | 一位数字,指定是否和在什么时间用 dump 命令来备份一个文件系统。 |
| 6 | 次序 | 一位数字,指定 fsck 命令按照什么次序来检查文件系统。 |
1 | # 挂载在/dev/hdc的CD-ROM挂载到别的地方 |
查看挂载的文件系统列表
mount 命令被用来挂载文件系统。执行这个不带参数的命令,将会显示 一系列当前挂载的文件系统
输出的列表的格式:设备 on 挂载点 type 文件系统类型****(选项)
确定设备的名称
查看系统如何命名设备,设备命名的模式
1 | ls /dev |
Linux 存储设备名称
| 模式 | 设备 |
|---|---|
| /dev/fd* | 软盘驱动器 |
| /dev/hd* | 老系统中的 IDE(PATA)磁盘。典型的主板包含两个 IDE 连接器或者是通道,每个连接器 带有一根缆线,每根缆线上有两个硬盘驱动器连接点。缆线上的第一个驱动器叫做主设备, 第二个叫做从设备。设备名称这样安排,/dev/hda 是指第一通道上的主设备名;/dev/hdb 是第一通道上的从设备名;/dev/hdc 是第二通道上的主设备名,等等。末尾的数字表示 硬盘驱动器上的分区。例如,/dev/hda1是指系统中第一硬盘驱动器上的第一个分区,而 /dev/hda 则是指整个硬盘驱动器。 |
| /dev/lp* | 打印机 |
| /dev/sd* | SCSI 磁盘。在最近的 Linux 系统中,内核把所有类似于磁盘的设备(包括 PATA/SATA 硬盘, 闪存,和 USB 存储设备,比如说可移动的音乐播放器和数码相机)看作 SCSI 磁盘。 剩下的命名系统类似于上述所描述的旧的/dev/hd*命名方案。 |
| /dev/sr* | 光盘(CD/DVD 读取器和烧写器) |
自定义设备挂载的名字
首先,启动一个实时查看文件/var/log/messages
1 | # 可以实时观察系统的一举一动。 |
下一步,插入这个可移动的设备。
使用一个16MB 闪存。瞬间,内核就会发现这个设备, 并且探测它。****显示再次停止之后,输入 Ctrl-c,重新得到提示符。输出结果一再提及“[sdb]”, 这正好符和期望的 SCSI 磁盘设备名称。
1 | Jul 23 10:07:59 linuxbox kernel: sdb: sdb1 |
设备名称是/dev/sdb 指整个设备,/dev/sdb1是这个设备的第一分区。
1 | sudo mkdir /mnt/flash |
这个设备名称会保持不变只要设备与计算机保持连接并且计算机不会重新启动。
创建新的文件系统
重新格式化,而不是它现用的 FAT32系统。
- (可选的)创建一个新的分区布局若已存在的分区不是我们喜欢的。
- 在这个闪存上创建一个新的空的文件系统
1. fdisk 对设备分区
- fdisk 程序允许我们直接在底层与类似磁盘的设备(比如说硬盘驱动器和闪存驱动器)进行交互。
- fdisk 程序****可以在设备上编辑,删除,和创建分区。
首先我们必须卸载它,然后调用 fdisk 程序
1 | sudo umount /dev/sdb1 |
2. mkfs 创建一个新的文件系统
mkfs(”make file system”的简写),它能创建各种格式的文件系统。 在此设备上创建一个 ext3文件系统,我们使用”-t” 选项来指定这个”ext3”系统类型,随后是我们要格式化的设备分区名称
1 | sudo mkfs -t ext3 /dev/sdb1 |
当 ext3被选为文件系统类型时,这个程序会显示许多信息。若把这个设备重新格式化为它最初的 FAT32文件 系统,指定”vfat”作为文件系统类型:
1 | sudo mkfs -t vfat /dev/sdb1 |
直接把数据移入/出设备 dd
磁盘驱动器由大量的数据“块”组成,而操作系统却把这些数据块看作目录和文件。如果把磁盘驱动器简单地看成一个数据块大集合就能执行有用的任务,如克隆设备。
dd 程序能执行此任务。它可以把数据块从一个地方复制到另一个地方。它使用独特的语法(由于历史原因) ,经常它被这样使用:
1 | dd if=input_file of=output_file [bs=block_size [count=blocks]] |
创建 CD-ROM 映像
1. 创建一个 CD-ROM 的映像拷贝iso 映像
使用 dd 命令来读取 CD-ROW 中的所有数据块, 并把它们复制到本地文件中。
插入这张 CD 之后,确定 它的设备名称(假定是/dev/cdrom)制作 iso 文件:
1 | dd if=/dev/cdrom of=ubuntu.iso |
1. 或者 从文件集合中创建一个映像
首先创建一个目录,这个目录中包含了要包括到此映像中的所有文件,然后执行这个 genisoimage 命令 来创建映像文件。
创建一个叫做~/cd-rom-files 的目录,然后用文件填充此目录,再通过下面的命令来创建一个叫做 cd-rom.iso 映像文件:
1 | genisoimage -o cd-rom.iso -R -J ~/cd-rom-files |
“-R”选项添加元数据为 Rock Ridge 扩展,这允许使用长文件名和 POSIX 风格的文件权限。 同样地,这个”-J”选项使 Joliet 扩展生效,这样 Windows 中就支持长文件名了。
2. 挂载自己生成的iso镜像到文件系统(有趣)
挂载 iso 映像文件,虽然此文件仍然在我们的硬盘中,但我们 当作它已经在光盘中了。
添加 “-o loop” 选项来挂载(同时带有必需的 “-t iso9660” 文件系统类型), 挂载这个映像文件就好像它是一台设备,把它连接到文件系统树上,****映像文件被挂载之后,可以把它当作,就好像它是一张 真正的 CD-ROM 或者 DVD。当不再需要此映像文件后,记得卸载它。
1 | mkdir /mnt/iso_image |
3. 写入 CD-ROM 镜像
可重写入的 CD-RW 媒介在被重使用之前需要擦除或清空。为此,我们可以用 wodim 命令,指定 设备名称和清空的类型。此 wodim 程序提供了几种清空类型。最小(且最快)的是 “fast” 类型:
1 | wodim dev=/dev/cdrw blank=fast |
写入一个映像文件,我们再次使用 wodim 命令,指定光盘设备名称和映像文件名:
1 | wodim dev=/dev/cdrw image.iso |
检查映像文件的完整性
iso 映像文件的贡献者也会提供 一个 checksum 文件。
一个 checksum 能表示目标文件内容的数字。 如果目标文件的内容即使更改一个二进制位,checksum 的结果将会非常不一样。 生成 checksum 数字的最常见方法是使用 md5sum 程序。当你使用 md5sum 程序的时候, 它会产生一个独一无二的十六进制数字
1 | md5sum image.iso |