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 命令按照什么次序来检查文件系统。 |
# 挂载在/dev/hdc的CD-ROM挂载到别的地方
# 卸载的时候不要在要卸载的目录里面,否则 device is busy
umount /dev/hdc# 创建一个新的光盘挂载点
# 一个挂载点就是文件系统树中的一个目录。它没有什么特殊的。它甚至不必是一个空目录,
# 如果你把设备挂载到了一个非空目录上,你将不能看到 这个目录中原来的内容,直到你卸载这个设备。
mkdir /mnt/cdrom# -t 选项用来指定文件系统类型
mount -t iso9660 /dev/hdc /mnt/cdrom
查看挂载的文件系统列表
mount 命令被用来挂载文件系统。执行这个不带参数的命令,将会显示 一系列当前挂载的文件系统
输出的列表的格式:设备 on 挂载点 type 文件系统类型****(选项)
确定设备的名称
查看系统如何命名设备,设备命名的模式
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
# 可以实时观察系统的一举一动。
sudo tail -f /var/log/messages
下一步,插入这个可移动的设备。
使用一个16MB 闪存。瞬间,内核就会发现这个设备, 并且探测它。****显示再次停止之后,输入 Ctrl-c,重新得到提示符。输出结果一再提及“[sdb]”, 这正好符和期望的 SCSI 磁盘设备名称。
Jul 23 10:07:59 linuxbox kernel: sdb: sdb1
Jul 23 10:07:59 linuxbox kernel: sd 3:0:0:0: [sdb] Attached SCSI
removable disk
设备名称是/dev/sdb 指整个设备,/dev/sdb1是这个设备的第一分区。
sudo mkdir /mnt/flash
sudo mount /dev/sdb1 /mnt/flash
df
这个设备名称会保持不变只要设备与计算机保持连接并且计算机不会重新启动。
创建新的文件系统
重新格式化,而不是它现用的 FAT32系统。
- (可选的)创建一个新的分区布局若已存在的分区不是我们喜欢的。
- 在这个闪存上创建一个新的空的文件系统
1. fdisk 对设备分区
- fdisk 程序允许我们直接在底层与类似磁盘的设备(比如说硬盘驱动器和闪存驱动器)进行交互。
- fdisk 程序****可以在设备上编辑,删除,和创建分区。
首先我们必须卸载它,然后调用 fdisk 程序
sudo umount /dev/sdb1
# 必须指定设备名称而不是通过分区号
sudo fdisk /dev/sdb# 输入”m”会显示程序菜单
# 输入”p”会打印出这个设备的分区表Command (m for help): pDisk /dev/sdb: 16 MB, 16006656 bytes
1 heads, 31 sectors/track, 1008 cylinders
Units = cylinders of 31 * 512 = 15872 bytesDevice Boot Start End Blocks Id System
/dev/sdb1 2 1008 15608+ b w95 FAT32# 更改步骤
# 一个16MB 的设备只有一个分区(1),此分区占用了可用的1008个柱面中的1006个, 并被标识为 Windows 95 FAT32分区。
# 有些程序会使用这个标志符来限制一些可以对磁盘所做的操作, 但大多数情况下更改这个标志符没有危害。
# 为了叙述方便,将会更改它以此来表明是个 Linux 分区。
# 在更改之前,首先我们必须找到被用来识别一个 Linux 分区的 ID 号码。
# ID 号码“b”被用来指定这个已存在的分区。要查看可用的分区类型列表
# 在提示符下输入“l”,就会显示一个很长的可能类型列表。
l
# 在提示符下输入“t”,再输入新的 ID 号,就可以更改分区ID
t
# 在它们之中会看到“b”为已存在分区 类型的 ID 号,而“83”是针对 Linux 系统的 ID 号。# 保存更改
# 到目前为止,还没有接触这个设备(所有修改都存储在内存中, 而不是在此物理设备中),
# 所以我们将会把修改过的分区表写入此设备,再退出。为此,我们输入 在提示符下输入”w”
# 决定保持设备不变,可在提示符下输入”q”,这将退出程序而没有写更改
2. mkfs 创建一个新的文件系统
mkfs(”make file system”的简写),它能创建各种格式的文件系统。 在此设备上创建一个 ext3文件系统,我们使用”-t” 选项来指定这个”ext3”系统类型,随后是我们要格式化的设备分区名称
sudo mkfs -t ext3 /dev/sdb1
当 ext3被选为文件系统类型时,这个程序会显示许多信息。若把这个设备重新格式化为它最初的 FAT32文件 系统,指定”vfat”作为文件系统类型:
sudo mkfs -t vfat /dev/sdb1
直接把数据移入/出设备 dd
磁盘驱动器由大量的数据“块”组成,而操作系统却把这些数据块看作目录和文件。如果把磁盘驱动器简单地看成一个数据块大集合就能执行有用的任务,如克隆设备。
dd 程序能执行此任务。它可以把数据块从一个地方复制到另一个地方。它使用独特的语法(由于历史原因) ,经常它被这样使用:
dd if=input_file of=output_file [bs=block_size [count=blocks]]# 设备/dev/sdb 和 /dev/sdc ,把第一个驱动器中的所有数据复制到第二个 驱动器中。
dd if=/dev/sdb of=/dev/sdc# 如果只有第一个驱动器被连接到计算机上,我们可以把它的内容复制到一个普通文件中供 以后恢复或复制数据
dd if=/dev/sdb of=flash_drive.img
创建 CD-ROM 映像
1. 创建一个 CD-ROM 的映像拷贝iso 映像
使用 dd 命令来读取 CD-ROW 中的所有数据块, 并把它们复制到本地文件中。
插入这张 CD 之后,确定 它的设备名称(假定是/dev/cdrom)制作 iso 文件:
dd if=/dev/cdrom of=ubuntu.iso
1. 或者 从文件集合中创建一个映像
首先创建一个目录,这个目录中包含了要包括到此映像中的所有文件,然后执行这个 genisoimage 命令 来创建映像文件。
创建一个叫做~/cd-rom-files 的目录,然后用文件填充此目录,再通过下面的命令来创建一个叫做 cd-rom.iso 映像文件:
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。当不再需要此映像文件后,记得卸载它。
mkdir /mnt/iso_image
mount -t iso9660 -o loop image.iso /mnt/iso_image
3. 写入 CD-ROM 镜像
可重写入的 CD-RW 媒介在被重使用之前需要擦除或清空。为此,我们可以用 wodim 命令,指定 设备名称和清空的类型。此 wodim 程序提供了几种清空类型。最小(且最快)的是 “fast” 类型:
wodim dev=/dev/cdrw blank=fast
写入一个映像文件,我们再次使用 wodim 命令,指定光盘设备名称和映像文件名:
wodim dev=/dev/cdrw image.iso
检查映像文件的完整性
iso 映像文件的贡献者也会提供 一个 checksum 文件。
一个 checksum 能表示目标文件内容的数字。 如果目标文件的内容即使更改一个二进制位,checksum 的结果将会非常不一样。 生成 checksum 数字的最常见方法是使用 md5sum 程序。当你使用 md5sum 程序的时候, 它会产生一个独一无二的十六进制数字
md5sum image.iso