学习笔记-磁盘存储管理

5 磁盘存储管理

5.1 Linux磁盘存储概述

5.1.1 磁盘数据组织

1)低级格式化

所谓低级格式化,就是将空白磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识区、间隔区(GAP)和数据区等。

2)磁盘分区

磁盘在系统中使用都必须先进行分区,然后建立文件系统,才可以存储数据。分区也有助于更有效地使用磁盘空间。每一个分区在逻辑上都可以视为一个磁盘。

3)高级格式化

磁盘分区在作为系统使用之前还需要进行初始化,并将记录数据结构写到磁盘上这个过程就是高级格式化,实际上就是在磁盘分区上建立相应的文件系统,对磁盘的各个分区进行磁道格式化,在逻辑上划分磁道。

5.1.2 Linux磁盘设备名

在Linux中,设备文件名用字母表示不同的设备接口,例如a表示第1个接口,字母b表示第2个接口,磁盘设备也不例外。

IDE硬盘(包括光驱设备)由内部链接来区分,最多可以连接4个设备。/dev/hda表示第1个IDE通道(IDE1)的主设备(master),/dev/hdb表示第1个IDE通道的从设备(slave)。按照这个原则,/dev/hdc和/dev/hdd为第2个IDE通道(IDE2)的主设备和从设备。

原则上SCSI、SAS、SATA、USB接口硬盘的设备文件名均以/dev/sd开头。这些设备命名依赖于设备的ID号码,不考虑遗漏的ID号码。例如3个SCSI设备的ID号码分别是0、2、5,设备名分别是/dev/sda、/dev/sdb和/dev/sdc。如果再添加一个ID号码为3的设备,则这个设备将被以/dev/sdc来命名,ID号码为5分设备将被改称为/dev/sdd/

5.1.3 Linux磁盘分区

1.分区样式:MBR与GPT

MBR:最多可支持4个磁盘分区,可通过扩展分区来支持更多的逻辑分区,在Linux中将该分区样式又称为MSDOS。

GPT:磁盘内最多可以创建128个主分区,不必创建扩展分区和逻辑分区。

MBR分区的容量限制是2TB,GPT分区可以突破MBR的2TB容量限制,特别适合大于2TB的硬盘分区。

2.磁盘分区命名

在Linux中,磁盘分区的文件名需要在磁盘设备文件名的基础上加上分区编号。这样,IDE硬盘分区采用/dev/hdxy这样的形式命名。SCSI、SAS、SATA、USB硬盘分区采用/dev/sdxy这样的形式命名,其中x表示设备编号(从a开始),y是分区编号(从1开始)。例如,第一块SCSI硬盘的主分区为sda1,扩展分区为sda2,扩展分区下的一个逻辑分区为sda5(从5开始采用来为逻辑分区命名)。

5.1.4 Linux文件系统

ext是Extented FIle System(扩展文件系统)的简称,一直是Linux首选的文件系统格式,在过去较长一段时间里,ext3是Linux操作系统的主流文件系统格式,Linux内核自2.6.28版开始正式支持新的系统文件ext4.

ext4的主要特点如下:

  • 属于大型文件系统,支持最高1EB(1048576TB)的分区,最大16TB的单个文件。
  • 向下兼容于ext2于ext3,可将ext3和ext2的文件系统挂载为ext4。
  • 引入现代文件系统中流行的Extent文件存储方式,以取代ext2/3使用的块映射(block mapping)方式。Extent为一组连续的数据块,可以增加大型文件的效率。ext4支持单一Extent,在单一块大小为4KB的系统中最高可达128MB。
  • 支持持久预分配,在文件系统层面实现了持久分配并提供相应的API,比应用软件自己实现更有效率。
  • 能够尽可能延迟分配磁盘空间,使用一种称为allocate-on-flush的方式,直到文件在缓存中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配。
  • 支持无线数量的子目录。
  • 使用日志校验来提高文件系统可靠性。
  • 支持在线磁盘碎片整理。

5.1.5 磁盘分区规则

1)分区类型:Linux Native与Linux Swap

Linux Native分区

Linux Native分区是存放系统文件的地方,只能使用ext文件系统。根(/)分区是其中一个非常特殊的分区,它是整个操作系统的根目录,在安装操作系统时创建。与Windows不同,Linux操作系统可以安装到多个数据分区中,然后通过挂载(mount)的方式把它们挂载到不同的文件系统中进行使用。如果安装过程中指定了根分区,而没有其他数据分区,那么操作系统中的所有文件都将全部安装到根分区下。

创建/boot分区是非常必要的,它包含了操作系统的内核和在启动系统过程中所要用到的文件,如果有一个单独的/boot启动分区,即使主要的根分区出现了问题,计算机依然能够启动。这个分区的大小在50~100MB之间。另外,还可根据情况创建/usr分区(存放软件,应尽可以分配大的空间)、/home分区(用户主目录所在地,大小取决于有多少用户,尤其适合多用户),/tmp分区(存放临时文件,适合多用户系统或者网络服务器)等。

Linux Swap分区

Swap分区是Linux暂时存储数据的交换分区,它主要用于保存物理内存上暂时不用的数据,在需要的时候再调进内存。可以将其理解为与Windows的虚拟内存一样的技术,区别是在Windows下只需要在分区内划出一块固定大小的磁盘空间作为虚拟内存,而在Linux中则需要专门划出一个分区来存放内存数据。一般情况下,Swap分区应该大于或等于物理内存的大小。建议物理内存在2GB以下时,Swap分区的大小为物理内存的2~2.5倍,如果物理内存在2GB以上,则Swap分区的大小设为与物理内存大小相同即可。可以创建和使用多个交换分区,但最多16个。

2)规划磁盘分区

理论上在硬盘空间足够时可以建立任意数量的分区(挂载点),但在实际应用中很少需要大量分区。

以主流的MBR分区为例,一个硬盘可以划分4个区,可以是3个主要分区和一个扩展分区,而扩展分区里可以划分若干个逻辑分区,扩展分区本身不能存储任何东西,也不能格式化成文件系统,只能用于划分逻辑分区。

规划磁盘分区,需要考虑磁盘的容量、系统的规模与用途、备份空间等。

Linux系统磁盘最基本的分区只需要两个,一个根分区(/)和一个Swap分区。Swap分区大小一般为物理内存的两倍。

为提高可靠性,系统磁盘可以考虑增加一个引导分区(/boot)。引导分区只是安装启动器(引导文件)的一个分区,而真正的引导是在根目录下。/boot分区大概100MB,位于磁盘的最前面,目的是防止主板太旧、硬盘太大等问题而导致的无法开机。引导分区不是必需的,如果没有创建引导分区,引导文件就安装在根分区中。

如果磁盘空间很大,可以按用途划分多个分区,如/home分区主要用于存放个人数据,/tmp分区用于存放临时文件。分区数量多,就要考虑建立扩展分区,在扩展分区划分逻辑分区。如果安装有多个硬盘,根据需要划分独立的分区。

分区无论是在系统磁盘上,还是非系统磁盘上,最好都挂载到根目录下使用。

3)磁盘分区工具

命令行工具可以使用fdisk和parted。fdisk是各种Linux发行版本中最常用的分区工具,使用灵活,简单易用。parted功能更加强大,支持的分区类型非常多,而且可以调整原有分区尺寸,只是操作复杂一些。

Ubuntu提供一个基于文本窗口界面的分区工具cfdisk,它比fdisk的操作更为直观,但与真正的图形界面还是逊色一些。在命令行中执行sudo cfdisk命令可以打开其主界面。默认对第一个磁盘进行分区,如果要对其他磁盘分区,执行命令时需要加上该磁盘设备名作为操作参数。

4)磁盘分区准备

磁盘分区操作容易导致数据丢失,建议对重要数据进行备份之后再进行分区操作。

在实际使用过程中,可能需要添加或者更换新磁盘。要安装新的磁盘(热插拔硬盘除外),首先要关闭计算机,按要求把磁盘安装到计算机中,重启计算机,进入Linux操作系统后可执行dmesg命令查看新添加的磁盘是否已被识别,然后再进行分区操作。

5.2 使用命令行工具管理磁盘分区和文件系统

主要步骤:

  • 对磁盘进行分区
  • 在磁盘分区上建立相应的文件系统。这个过程称为建立文件系统或者格式化。
  • 建立挂载点目录,将分区挂载到系统相对应目录下,就可访问该文件系统。

5.2.1 使用fdish进行分区管理

1)fdish简介

fdisk可以在两种模式下运行:交互式和非交互式。

格式:fdisk [选项] <磁盘设备名> 用于改变分区表(创建和修改分区)

fdisk [选项] -l [<磁盘设备名>] 用于列出当前分区表,如果不带磁盘参数将列出当前所有磁盘的分区信息。

主要选项说明:

  • -l:显示指定磁盘设备的分区表信息,如果没有指定磁盘设备,则显示/proc/partitions文件中的信息。
  • -u:在显示分区表时以扇区(512字节)代替柱面作为显示单位。
  • -s:在标准输出中以块为单位显示分区的大小。至于设备的名称,对于IDE磁盘设备,设备名为/dev/hd[a-h],对于SCSI或SATA磁盘设备,设备名为/dev/hd[a-p]。
  • -C<数量>:定义磁盘的柱面数,一般情况下不需要对此进行定义。
  • -H<数量>:定义分区表所使用的磁盘磁头数,一般为255或者16。
  • -S<数量>:定义每个磁盘的扇区数。

2)查看现有分区

linx@ubuntu:~$ sudo fdisk -l
Disk /dev/sda:20 GiB,21474836480 字节,41943040 个扇区
Disk model: VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0dcab4f7

设备       启动    起点     末尾     扇区  大小 Id 类型
/dev/sda1  *       2048  1050623  1048576  512M  b W95 FAT32
/dev/sda2       1052670 41940991 40888322 19.5G  5 扩展
/dev/sda5       1052672 41940991 40888320 19.5G 83 Linux

3)创建分区

linx@ubuntu:~$ sudo fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.34)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x02487824 的新 DOS 磁盘标签。

命令(输入 m 获取帮助): n
分区类型
   p   主分区 (0个主分区,0个扩展分区,4空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (1-4, 默认  1): 
第一个扇区 (2048-41943039, 默认 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, 默认 41943039): +5G

创建了一个新分区 1,类型为“Linux”,大小为 5 GiB。

命令(输入 m 获取帮助): p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
Disk model: VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x02487824

设备       启动  起点     末尾     扇区 大小 Id 类型
/dev/sdb1        2048 10487807 10485760   5G 83 Linux

命令(输入 m 获取帮助): w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

命令(输入 m 获取帮助): m

帮助:

  DOS (MBR)
   a   开关 可启动 标志
   b   编辑嵌套的 BSD 磁盘标签
   c   开关 dos 兼容性标志

  常规
   d   删除分区
   F   列出未分区的空闲区
   l   列出已知分区类型
   n   添加新分区
   p   打印分区表
   t   更改分区类型
   v   检查分区表
   i   打印某个分区的相关信息

  杂项
   m   打印此菜单
   u   更改 显示/记录 单位
   x   更多功能(仅限专业人员)

  脚本
   I   从 sfdisk 脚本文件加载磁盘布局
   O   将磁盘布局转储为 sfdisk 脚本文件

  保存并退出
   w   将分区表写入磁盘并退出
   q   退出而不保存更改

  新建空磁盘标签
   g   新建一份 GPT 分区表
   G   新建一份空 GPT (IRIX) 分区表
   o   新建一份的空 DOS 分区表
   s   新建一份空 Sun 分区表


命令(输入 m 获取帮助): n

4)修改分区类型

新增分区时,系统默认的分区类型为Linux Native,对应的代码为83。如果要把其中的某些分区改变为其他类型,如Linux Swap或FAT32等,则可以在fdisk命令的交互模式下通过命令t来完成。执行t命令改变分区类型时,系统会提示用户要改变哪个分区,改变为什么类型(输入分区类型号码)。可执行l命令查询Linux所支持的分区类型号码及其对应的分区类型。改变分区类型结束后,执行命令保存并且退出。

5)删除分区

要删除分区,可以在fdisk的交互模式下执行d命令,指定要删除的分区编号,最后执行w命令使之生效。如果删除扩展分区,则扩展分区上的所有逻辑分区都会被自动删除。

注意不要删除Linux系统的启动分区或根分区。删除分区之后,余下的分区的编号会自动调整,如果被删除的分区在Linux启动分区或根分区之前,可能导致系统无法启动,这时需要修改GRUB配置文件。

6)保存分区修改结果

要使磁盘分区的任何修改(如创建新分区、删除已有分区、更改分区类型)生效,必须执行w命令保存修改结果,这样在fdisk中所做的所有操作都会生效,且不可回退。如果分区表正忙,还需要重启计算机后才能使新的分区表生效。只要执行q命令退出fdisk,则当前所有操作均不会生效。

对于正处于使用状态(被挂载)的磁盘分区,不能删除,也不能修改分区信息。建议对在用的分区进行修改之前,首先备份该分区上的数据。

5.2.2 建立文件系统——格式化磁盘分区

1)查看文件系统类型

linx@ubuntu:~$ sudo file -s /dev/sda5
/dev/sda5: Linux rev 1.0 ext4 filesystem data, UUID=2aa4d0a8-0cc8-47ce-b56d-c6975c1a9ccb (needs journal recovery) (extents) (64bit) (large files) (huge files)

以上显示该分区采用ext4文件系统。再来检查新创建的分区/dev/sdb1,可以发现没有进行格式化

linx@ubuntu:~$ sudo file -s /dev/sdb1
/dev/sdb1: data

2)使用mkfs创建文件系统

格式:mkfs [选项] [-t 文件系统类型] [文件系统选型] 磁盘设备名 [大小]

linx@ubuntu:~$ sudo  mkfs -t ext4 /dev/sdb1
mke2fs 1.45.5 (07-Jan-2020)
创建含有 1310720 个块(每块 4k)和 327680 个inode的文件系统
文件系统UUID:b25f72e1-3ca4-4ee7-a962-cd0c6a0ab4fb
超级块的备份存储于下列块: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(16384 个块) 完成
写入超级块和文件系统账户统计信息: 已完成

#可以使用file命令检查
linx@ubuntu:~$ sudo file -s /dev/sdb1
/dev/sdb1: Linux rev 1.0 ext4 filesystem data, UUID=b25f72e1-3ca4-4ee7-a962-cd0c6a0ab4fb (extents) (64bit) (large files) (huge files)

对于新建立的文件系统,可以使用选项-f强制检查

linx@ubuntu:~$ sudo fsck -f /dev/sdb1
fsck,来自 util-linux 2.34
e2fsck 1.45.5 (07-Jan-2020)
第 1 步:检查inode、块和大小
第 2 步:检查目录结构
第 3 步:检查目录连接性
第 4 步:检查引用计数
第 5 步:检查组概要信息
/dev/sdb1:11/327680 文件(0.0% 为非连续的), 42078/1310720 块

3)使用卷标和UUID表示文件系统

  • 创建和使用卷标
#创建卷标
linx@ubuntu:~$ sudo mkfs.ext4 -L DATA /dev/sdb1
mke2fs 1.45.5 (07-Jan-2020)
/dev/sdb1 有一个 ext4 文件系统
	创建于 Wed Mar 31 03:46:07 2021
无论如何也要继续?(y,N) y
创建含有 1310720 个块(每块 4k)和 327680 个inode的文件系统
文件系统UUID:5dbe0efc-cccc-4204-8cdd-87c1ee8b4349
超级块的备份存储于下列块: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(16384 个块) 完成
写入超级块和文件系统账户统计信息: 已完成

e2label 设备名 [新卷标]

如果不提供卷标参数,将显示分区卷标;如果指定卷标参数,将改变其卷标

linx@ubuntu:~$ sudo e2label /dev/sdb1
DATA

也可以使用这个命令设置卷标:tune2fs -L 卷标 设备名

  • 创建和使用UUID
#查看当前系统中所有已挂载文件系统的UUID、卷标和文件系统类型
linx@ubuntu:~$ sudo blkid
/dev/sda5: UUID="2aa4d0a8-0cc8-47ce-b56d-c6975c1a9ccb" TYPE="ext4" PARTUUID="0dcab4f7-05"
/dev/sdb1: LABEL="DATA" UUID="5dbe0efc-cccc-4204-8cdd-87c1ee8b4349" TYPE="ext4" PARTUUID="02487824-01"
/dev/sda1: UUID="FC61-38EF" TYPE="vfat" PARTUUID="0dcab4f7-01"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/loop7: TYPE="squashfs"
/dev/loop8: TYPE="squashfs"
/dev/loop9: TYPE="squashfs"
/dev/loop10: TYPE="squashfs"
#重置系统的UUID
linx@ubuntu:~$ sudo tune2fs -U random /dev/sdb1
#清除系统UUID
linx@ubuntu:~$ sudo tune2fs -U clear /dev/sdb1

5.2.3 挂载文件系统

1)挂载文件系统

  • 一个文件系统不应该重复挂载在不同的挂载点(目录)中
  • 一个目录不应该重复挂载多个文件系统
  • 作为挂载点的目录通常应是空目录,因为挂载文件系统后该目录下的内容暂时消失。

2)手动挂载文件系统

格式:mount [-t 文件系统类型] [-L 卷标] [-o挂载选项] 设备名 挂载点目录

#创建一个挂载点目录
linx@ubuntu:~$ sudo mkdir /usr/mydoc
[sudo] linx 的密码: 
#将/dev/sdb1挂载到/usr/mydoc
linx@ubuntu:~$ sudo mount /dev/sdb1 /usr/mydoc
linx@ubuntu:~$ mount
#省略其他文件系统
/dev/sdb1 on /usr/mydoc type ext4 (rw,relatime)

3)自动挂载文件系统

4)/etc/mtab配置文件

5)卸载文件系统

5.2.4 检查维护文件系统

1)使用fsck检验并修复文件系统

2)使用df检查文件系统的磁盘空间占用情况

3)使用du查看文件和目录的磁盘使用情况

4)将ext3文件系统转换为ext4文件系统

5.3 使用图形界面工具管理

5.3.1 磁盘分区和文件系统

5.3.2 使用内置的磁盘管理器GNOME DIsks

5.3.3 使用Gparted分区工具

5.4 挂载和使用外部存储设备

5.4.1 挂载和使用光盘

5.4.2 制作和使用光盘映像

5.4.3 挂载和使用USB设备

5.5 文件系统备份

5.5.1 数据备份概述

1)备份内容

在Linux操作系统中,按照要被备份的内容,备份分为系统备份和用户备份。系统备份就是对操作系统和应用程序的备份,便于在系统崩溃以后能快速、简单、完全地回复系统的运行。最有效的方法是仅仅备份那些对于系统崩溃后恢复所必需的数据。用户备份不同系统备份,原因是用户的数据变动更加频繁一些,当备份用户数据时,只是为用户提供一个虚拟的安全网络空间,合理地放置最近用户数据文件的备份,当出现任何问题时,如误删除某些文件或者硬盘发生故障时,用户可以恢复自己的数据。用户备份应该比系统备份更加频繁,可采用自动定期运行某个程序的方法来备份数据。

2)备份策略

  • 完全备份(Full Backup):对系统进行一次全面的备份,在备份间隔期间一旦出现数据丢失等问题,可以使用上一次的备份数据恢复到备份之前的数据状况。这种方式所需要时间最长,但恢复时间最短,操作最方便,当系统数据量不大时,采用完全备份最可靠。
  • 增量备份(Incremental Backup):只对上一次备份后增加的和修改过的数据进行备份。这种方式可缩短备份时间,快速完成备份,但是可靠性较差,备份数据的份数太多,这种方式很少采用。
  • 差异备份(Differential Backup):对上一次完全备份(而不是上次备份)之后新增加或修改过的数据进行备份。这种方式兼具完全备份和增量备份的优点,所需时间端,并节省空间,恢复方便,系统管理员只需要两份数据,就可以将系统完全恢复。这种方式适用于各种备份场合。

3)备份规划

  • 单纯的完全备份:定时为系统进行完全备份,需要恢复时以最近一次的完全备份数据来还原。这是最简单的备份方案,但由于每次备份时,都会将全部的文件备份下来,每次备份所需时间较长,适合数据量不大或者数据变动频率很高的情况下。
  • 完全备份结合差异备份:以较长周期定时进行完全备份,其间则进行较短周期的差异备份。例如每周六晚上做1次标准备份,每天晚上做1次差异备份。需要恢复时,先还原最近一次完全备份的数据,接着再还原该完全备份后最近1次的增量备份,如果周三出现事故,则可将数据恢复到周二晚上的状态,先还原上周六的完全备份,再还原本周二的差异备份即可。

5.5.2 使用存档工具进行简单备份

1)使用tar命令进行存档

格式:tar [选项] 档案文件 文件或目录列表

linx@ubuntu:~$ tar -czvf linxbak.tar /home/linx
#要恢复使用tar命令备份过的文件(解开档案文件),可使用选项-x
linx@ubuntu:~$ tar -xzvf linxbak.tar

2)使用dd命令进行存档

dd是一种文件转移命令,用于复制分件,并在复制的同时进行指定的转换和格式处理,如果转换取决于选项和参数。它使用if选项指定输入端,of选项指定输入端。

dd常用来制作光盘映像(光盘必须是iso9660格式)

linx@ubuntu:~$ dd if=/dev/cdrom of=cdrom.iso

由于dump和restore命令的出现,dd比较少用了。

5.5.3 使用dump和restore实现备份

使用工具需要对工具进行下载

linx@ubuntu:~$ sudo apt install dump
linx@ubuntu:~$ sudo apt install restore

1)使用dump命令备份

#统计完全备份/dev/sda1所需空间,以防磁带或磁盘空间不足。级别0表示完全备份,选项-s表示统计备份所需空间。
linx@ubuntu:~$ dump -0s /dev/sda1
#选项-f指定备份文件的路径和名称,-u表示更新数据库文件/etc/dumpdates(将文件的日期、存储级别、文件系统等信息都记录下来)
linx@ubuntu:~$ dump -0u -f /tmp/boot.dump /boot
#要实现增量备份,第1次备份时可选择级别0,以后每次做增量备份时,就可以依次使用级别1、级别2、级别3
linx@ubuntu:~$ dump -0u -f /tmp/boot.dump /boot
linx@ubuntu:~$ dump -1u -f /tmp/boot1.dump /boot
linx@ubuntu:~$ dump -2u -f /tmp/boot2.dump /boot
linx@ubuntu:~$ dump -3u -f /tmp/boot3.dump /boot
#要实现差异备份,可先选择级别0做完整备份,然后每次都使用大于0的同一级别。如每次都使用级别1。
linx@ubuntu:~$ dump -0u -f /tmp/boot.dump /boot
linx@ubuntu:~$ dump -1u -f /tmp/boot1.dump /boot
linx@ubuntu:~$ dump -1u -f /tmp/boot2.dump /boot
linx@ubuntu:~$ dump -1u -f /tmp/boot3.dump /boot
#dump可以将备份存储在磁带上。Linux通常用/dev/st0代表倒带设备,而用/dev/nst0代表非倒带设备
linx@ubuntu:~$ dump 0f /dev/nst0 /boot

2)使用restore命令恢复

#恢复数据之前,要浏览备份文件中的数据,可以使用如下命令(-t选项表示查看)
linx@ubuntu:~$ restore -tf /tmp/boot.dump
#要恢复一个备份,可以使用如下命令(-r选项表示重建)
linx@ubuntu:~$ restore -rf /tmp/boot.dump
#使用以下命令进入交互式恢复模式。
linx@ubuntu:~$ restore -if /tmp/boot.dump

5.5.4 光盘备份

#要将/home目录的数据备份到光盘映像文件中
#在/tmp目录中建立一个home.iso的映像文件。包含/home目录的所有内容。 -r表示支持长文件名 -o表示输出
linx@ubuntu:~$ mkisofs -r -o /tmp/home.iso /home
#除了使用mkisofs命令,还可以使用dd命令建立光盘映像
#if参数指定输入文件(if参数必须是文件,而不能时一个目录) of参数指定输出文件
linx@ubuntu:~$ dd if=/dev/cdrom of=/tmp/home.iso

刻录机在Linux中被识别为SCSI设备,即使该设备实际上是IDE设备。在实际刻录光盘之前,可以使用以下命令对刻录设备进行检测,获取光盘刻录机的SCSI设备识别号以便在刻录光盘的工具中使用

linx@ubuntu:~$ cdrecord -scanbus

格式:cdrecord -v -eject

#-eject表示刻录完毕弹出光盘。
linx@ubuntu:~$ cdrecord -v dev=/dev/cdrom /tmp/home.iso

你可能感兴趣的:(Ubuntu,ubuntu)