echo“- – -”>/sys/class/scsi_host/host2/scan扫描新装的硬盘,不需要重启
磁盘管理三大步骤:分区,管理,挂载
设备文件创建mknob cdrom /mnt/cdrom
并行接口针多,但是传的速度过快,会对数据造成干扰
vLinux的数据一般都存储在分区空间里
学习linux的磁盘管理就必须:1. 设备识别 ;2.设备分区 ;3.创建文件系统 ;
4.标记文件系统 ;5.在/etc/fstab 文件中创建条目 ;6.挂载新的文件系统
一、磁盘结构与分区
柱面cylinder(磁道)、255磁头head、512Bite*63扇区secotr
SCSI、SATA、SAS、USB都显示/dev/sd
两种分区方式:MBR ,GPT
v MBR: Master Boot Record放在磁盘的第一个扇区里(最外圈)0扇区 ,1982年,
使用32位表示扇区数,分区不超过2T
v 如何分区:按柱面 0 磁道0 扇区:512bytes
446bytes: boot loader 64bytes:分区表以16bytes标识一个分区 2bytes: 55AA结束标志,说明前面是有用的。
vMBR分为: 4 个主分区;3 主分区+1 扩展(N个逻辑分区 )
v GPT:GUID (Globals Unique Identifiers)
partition table支持128个分区,使用64 位,支持8Z(512Byte/block )64Z ( 4096Byte/block) )
v 使用128 位UUID 区 表示磁盘和分区 GPT 分区表自动备份在头和尾两份,并有CRC 校验位
v UEFI ( 统一扩展固件接口) 硬件支持GPT,使操作系统启动
分区:主分区、扩展分区、逻辑分区,基于MBR来分,GPT上只有主分区
主分区:一个硬盘上最多四个,操作系统的启动文件,激活分区只有一个,计算机启动时,会找激活分区的主分区,在启动操作系统),不能在细分为小区,用/dev/sda1-4,来表示的,包括扩展分区在内
扩展分区:在一个硬盘上最多只有一个,不能直接存数据 /dev/sda1-4
逻辑分区:逻辑分区在扩展分区内,存储数据,只能/dev/sda5- n,从第5分区开始
分区的作用:v1.优化I/O性能,建议把日志单独划分一个分区
2. 实现磁盘空间配额限制 ; 3.提高修复速度 ; 4.隔离系统和程序 ; 5.安装多个OS ;6.采用不同的文件系统
二、管理分区
列出块设备:lsblk 选项:-l:块设备列表(sda,以及挂载信息) –V:查看块设备的版本信息
v 创建分区使用:
fdisk 创建MBR 分区 (dos)fdisk –l /dev/sda -u=cylinders; -u=secotr…
gdisk 创建GPT 分区
parted 高级分区操作(创建、复制、调整大小等等) :创建分区、改变类型v
分区工具fdisk和gdisk
fdisk:创建MBR分区,一般对硬盘分区,不对分区再次分区 ;gfisk /dev/sdb创建GPT 分区工具
fdisk -l [-u] [device…] /dev/sda 查看所有磁盘分区信息
2.1 fdisk /dev/sda
p 分区列表 ; t 更改分区类型 ; n 创建新分区
d 删除分区 ; w 保存并退出 ; q 不保存并退出
设备的名称可能随着环境变化而发生改变,把逻辑分区5删除之后,逻辑分区6就会变成5
(因而在配置文件里最好不用分区的设备名称)
fdisk -l /dev/sdX 查看物理硬盘的分区表
注意:老的硬盘(有数据)新加分区存盘退出的时候很有可能会出现不同步的情况;
查看内核是否已经识别新的分区:
cat /proc/partitions、lsblk、ls /dev/sda*’:查看内存中的分区表,可能与磁盘中的分区表不同步,
partprobe 重新设置内存中的内核分区表版本
2.2 通知内核重新读取硬盘分区表
partprobe /dev/sda,可以同步分区表(不管增加、删除),适用于CentOS5,7
partx –a /dev/sda :增加分区的同步方法,适用于CentOS6
partx –d – -nr 6-8 /dev/sda:删除分区6-8的同步方法,适用于CentOS6
2.3 parted分区工具
parted [ 选项]… 设备 命令 [ 参数]…] 即时生效
parted /dev/sdb mklabel gpt|msdos 改变分区表结构gpt或者mbr
parted /dev/sdb print 打印分区 ;parted /dev/sdb mkpart primary 1 200 (默认M)
parted /dev/sdb rm 1 删除分区
parted –l :查看所有磁盘状态 (parted)p:查看格式化是否成功 ,列出磁盘分区
注意:parted 的操作都是实时生效的,小心使用
三、file system 文件系统类型
磁盘分区之后选择不同的文件系统
文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。
ntfs(支持4G以上的文件,可以设置权限) ,fat(32G),ext2,3,4
RAW:未经处理或者未经格式化产生的文件系统(没有文件系统不方便管理,但是不影响性能)
如有一些数据库,直接通过二进制查看,刚分完取就相当于RAW
3.1 Linux 文件系统
ext2(Extended file system), ext3,ext4, (CentOS6) ;光盘:iso9660 可以用df –T 查看
xfs(CentOS7) (SGI ), btrfs (Oracle ), reiserfs, jfs(AIX ), swap(用来模拟内存使用)
Windows文件系统 :fat32, ntfs ;v Unix: FFS (fast ), UFS (unix ), JFS2
v 网络文件系统:NFS, CIFS
v 集群文件系统:GFS2, OCFS2 (oracle)服务器和存储都有群集,容错率增加
v 分布式文件系统:ceph, moosefs, mogilefs, glusterfs,Lustre 就近访问,速度快
对系统文件操作时,系统会对这次的操作做一个记录,修改硬盘的文件,先要把文件读入到内存中,然后在内存中修改,最后传递到硬盘文件中。但是有日志的文件系统是修改的文件记录在硬盘文件带有的日志中,最后在系统不忙的时候,日志的文件就会写入到硬盘文件中了。避免修改的过程中突发实况(断电)会毁坏数据,因而写日志能够保证系统的稳定性(要么修改前,要么修改后)实时修改文件(与内存中的文件同时修改)
v 根据其是否支持"journal" 功能:
日志型文件系统: ext3, ext4, xfs, … ; 非日志型文件系统: ext2, vfat
v 文件系统的组成部分:
内核中的驱动程序模块:ext4, xfs, vfat lsmod module(模块):列举模块
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
v Linux 的虚拟文件系统:VFS:Virutal file system,用户打交道的是虚拟文件系统,文件系统不同,访问方法也就不同,VFS屏蔽文件系统的区别,就可以按照统一方法访问,操作的命令也就是一样的。(代理程序)
v 查前支持的文件系统:cat /proc/filesystems
blkid:查看分区是否有文件系统,列出的分区都是有文件系统的分区
3.2 创建文件系统mkfs
文件系统的格式化:mkfs (创建文件系统的过程) ,格式化之前必须得先取消挂载。
为了表示是使用UUID,为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。
3.2.1 mke2fs 文件系统ext系列专用管理工具
-t {ext2|ext3|ext4} -b {1024|2048|4096} 块:对文件分配空间的最小单位指定块大小,格式化完了就不能指定了
-L 'LABEL' :设定卷标 -j: 于 相当于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 为数据空间中每多少个字节创建一个inode ;此大小不应该小于block 的大小
-N # :为数据空间创建个多少个inode -I:一个inode 记录大小128—4096
-m #: 默认5%, 为管理人员预留空间占总空间的百分比
-O FEATURE[,…] :启用指定特性 -O ^FEATURE:关闭指定特性
3.2.2 tune2fs 重新设定ext 系列文件系统
文件系统标签L: 指向设备的另一种方法 ; 与设备无关
vv e2label :管理ext 系列文件系统的LABEL # e2label DEVICE [LABEL]
tune2fs :重新设定ext 系列文件系统可调整参数的值,格式化之后指定块大小 (注意:块大小创建后不可更改)
-l :查看指定文件系统超级块信息;super block 文件系统的元数据就是存储在超级块中
-L 'LABEL' :修改卷标 ; -m # :修预留给管理员的空间百分比 ;-j: 将ext2 升级为ext3
– O: 文件系统属性启用或禁用, –O ^has_journal 禁用日志功能
-o: 调整文件系统的默认挂载选项,–o ^acl
findfs :查找分区
findfs [options] LABEL=<label> ; findfs [options] UUID=<uuid>
-U UUID: 修改UUID号 uuidgen生成UUID
v dumpe2fs查看超级块分组: -h :查看超级块信息,不显示分组信息 =tune2fs –l
v 超级块:存储文件系统的大小、有多少是空的和已经填满的占多少,以及它们各自的总数和其他诸如此类的信息;要使用一个分区来进行数据访问,那么第一个要访问的是超级块,如果超级块坏了,那磁盘就坏了
超级块占用第1号物理块,是文件系统的控制块,超级块包括:文件系统的大小、空闲块的数目、空闲块的索引空闲i节点数目、空闲i节点索引表、封锁标记等。超级块是系统为文件分配存储空间、回收存储空间得依据。
所以为了防止超级块数据被破坏,一般在块组的1,3,5,7,9存储备份。主要的在组0中
3.2.3 blkid 块设备属性信息查看
blkid [OPTION]… [DEVICE]
-U UUID: 根据指定的UUID 来查找对应的设备 ; -L LABEL :根据指定的LABEL 来查找对应的设备
3.3 fsck文件系统的检测及修复
常发生于死机或者非正常关机之后
v 挂载为文件系统标记 为“no clean” ”
注意:因进程意外终止或系统崩溃等原因导致操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文 件系统;建议,离线进行(非挂载状态,无人操作);
v fsck: File System Check 只能修复文件系统的结构,不能修复上面的数据
fsck.FS_TYPE ; fsck -t FS_TYPE FS_TYPE 一定要与分区上已经文件类型相同
-a: 自动修复错误 ; -r: 交互式修复错误
v e2fsck :ext 系列文件专用的检测修复工具
-y :自动回答为yes ; -f :强制修复;每个扇区的一块块寻找坏的扇区进行修复
四、挂载mount
v 在linux操作系统中,挂载是一个非常重要的功能,使用非常频繁。它指将一个设备(通常是存储设备)挂接到一个已存在的目录上。(这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。)需要理解的是,linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。
我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为。 卸载:为解除此关联关系的过程。
v 把设备关联挂载mount点:mount Point ; 卸载umount:可使用设备,也可以使用挂载点
v 挂载点下原有文件在挂载完成后会被临时隐藏 ; 挂载点目录一般为空
4.1用mount命令挂载文件系统
挂载方法:mount DEVICE设备名 MOUNT_POINT挂载点
v mount :通过查看/etc/mtab 文件显示当前已挂载的所有设备
v mount [-fnrsvw] [-t vfstype] [-o options] device dir
device :指明要挂载的设备;df:显示挂载的设备以及分区使用情况
(1) 设备文件:例如/dev/sda5 (2) 卷标:-L 'LABEL', 如 例如 -L 'MYDATA'
(3) UUID, -U 'UUID'如 :例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir :挂载点,事先存在;建议使用空目录 ,进程正在使用中的设备无法被卸载(取消挂载)
4.2 mount常用命令选项
v -t vsftype :指定要挂载的设备上的文件系统类型
-r: readonly ,只读挂载 ; -w: read and write, 读写挂载; -n: 不更新/etc/mtab ,相当于#mount
v -a :自动挂载所有支持自动挂载的设备( 定义在了/etc/fstab文件中,且挂载选项中有auto 功能)
v -L 'LABEL': 以卷标指定挂载设备 ; v -U 'UUID': 以UUID 指定要挂载的设备
v -B、–bind: 绑定目录到另一个目录上,文件目录挂载,与硬链接有区别,链接数不会增加。
v -o options :( 挂载文件系统的选项) ,多个选项使用逗号分隔
async :异步模式 sync :同步模式, 内存更改时,同时写磁盘
同步模式把硬盘的文件先写到内存中,预防突发情况,效率较低,但是稳定。
异步模式在系统不太忙的时候写到磁盘中,默认为异步模式。
atime/noatime :包含目录和文件 diratime/nodiratime :目录的访问时间戳
auto/noauto :是否支持自动挂载, 是否支持-a 选项
exec/noexec :是否支持将文件系统上运行应用程序 ,避免外来设备挂载造成隐患
dev/nodev :是否支持在此文件系统上使用设备文件 ,被挂载的分区中设备文件被禁用挂载
suid/nosuid :是否支持suid 和sgid 权限 ,不让有suid的执行文件让普通用户使用。
查看内核追踪到的已挂载的所有设备:cat /proc/mounts(内存中)mount 与 /etc/mtab同步
4.3 remount重新挂载
重新挂载 mount –o remount,acl /dev/xxx /mnt/xxx ,在修改了/etc/fstab文件下使用重新挂载
ro :只读 ; rw: 读写
user/nouser :是否允许普通用户挂载此设备,默认管理员才能挂载
acl :启用此文件系统上的acl 功能 userquota:使用者限额
v Defaults(默认):相当于rw, nosuid, dev, exec, auto, nouser, async
4.4 卸载命令umount
卸载: # umount DEVICE 、 # umount MOUNT_POINT
查看挂载情况: #findmnt MOUNT_POINT
查看正在访问指定文件系统的进程: #lsof MOUNT_POINT 、 #fuser -v MOUNT_POINT
终止所有在正访问指定的文件系统的进程: # fuser -km MOUNT_POINT
被mount 、fsck 和其它程序使用
v 系统重启时保留文件系统体系 ;可以在设备栏使用文件系统卷标
v 使用mount -a 命令挂载/etc/fstab配置文件系统体系,只能是新添加的挂载,不是修改挂载
4.5 /etc/fstab文件挂载配置文件
设定除根文件系统以外的其它文件系统能够开机时自动挂载:/etc/fstab文件
mount:查看被挂载的设备和文件目录;df:查看文件系统的利用率,也能显示挂载的文件
proc/mount :查看挂载设备及其它的属性(最全面) /etc/mtab:查看挂载设备
/etc/fstab 每行定义一个要挂载的文件系统; 关于文件系统的静态信息
Ø 1.要挂载的设备或伪文件系统 2.挂载点 3.文件系统类型
Ø 4. 挂载选项 5. 转储频率 6.自检次序
v 要挂载的设备或伪文件系统:
设备文件、LABEL(LABEL="") 、UUID(UUID="") 、伪文件系统名称(proc,sysfs)
v 挂载选项: defaults
v 转储频率: 0 :不做备份 ; 1 :每天转储 ; 2 :每隔一天转储
v 自检次序: 0 :不自检 ; 1 :首先自检;一般只有rootfs 才用1
当配置文件修改好之后,用mount -o remount /mnt/XXX,来让挂载生效
小问题:如果fstab中的uuid出错了,系统就启动不起来了,挂载文件会出现错误,根目录/变成只读的,必须要给予根目录执行权限mount -o remount ,rw / 才能vim /etc/fstab,把挂载错误修改过来。
总结:分区 fdisk ;创建文件系统mkfs (增加或删除的时候要注意同步partx);挂载或重新挂载mount,挂载过后,要想开机重启之后保留挂载的文件,就需要在/etc/fstab中把挂载的一项加进去(r ! blkid /dev/XXX 写入UUID),在用mount -a,就相当于重启了,以后都能生效。最后可以用df查看
4.6 mount作用
挂载移动介质:
v 挂载意味着使外来的文件系统看起来如同是主目录树的一部分
v 访问前、介质必须被挂载 ; 摘除时,介质必须被卸载
v 按照默认设置,非根用户只能挂载某些设备(光盘、DVD 、软盘、USB 等等)
v 挂载点通常在/media 或/mnt下
被内核探测为SCSI 设备 :/dev/sdaX 、/dev/sdbX 、或类似的设备文件
v 在图形环境中自动挂载:图标在[ 计算机] 窗口中创建 ;挂载在/run/media/<user>/<label>
手动挂载: mount /dev/sdb1 /mnt
4.6.1挂载设备
mount /dev/sda /mnt/sda
4.6.2 挂载文件
mount -o loop file /mnt/file
回环设备:一般为使用镜像文件(镜像文件中也有文件系统)虚拟块设备存在于实际的另一个文件系统中
#mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
可以做分区实验,可以挂载使用,但是文件挂载必须要 mount -o -loop /partfile /mnt/partfile;
也可以用losetup /dev/loop6 /partfile 创建一个对应文件与设备的映射关系。
mknod /dev/sda b 7 8,创建/dev/loop7 ;/dev/loop8
此时在 /mnt/partfile 下写的文件就能在/partfile中存储,/partfile可以作为一个打包文件,备份使用,取消挂载之后,数据就能在/partfile中存储。
4.6.3 挂载目录
mount -B –bind dir1 dir2 (被挂载的目录中的原来文件被自动隐藏)
4.6.4 挂载网络
mount networkshare /mnt/sda
4.6.5 挂载ISO文件
cp /dev/cdrom /root/centos7.iso mount -o loop /testdir/centos7.iso /mnt/iso 挂载iso文件
mkisofs -r -o /root/etc.iso /etc 将目录打包成iso文件
4.6.6刻录光盘
wodim –v –eject centos.iso
五、swap处理交换文件和分区
交换分区是系统RAM 的补充,模拟内存分区(blkid、lsblk、cat/proc/swap、free查看swap内存和使用)
v 基本设置包括:
1.创建交换分区或者文件 2.使用mkswap 写入特殊签名
3.在 在/etc/fstab 文件中添加适当的条目 4.使用swapon –a激活交换空间
挂载交换分区:vim /etc/fstab
启用:swapon swapon [OPTION]… [DEVICE]
-a :激活所有的交换分区; -p PRIORITY :指定优先级
/etc/fstab:pri=value
v 禁用:swapoff [OPTION]… [DEVICE]
5.1 swap分区创建与删除
1、fdisk /dev/sdd
1:创建分区1 t:改变ID号为82 82 :默认swap的ID号是82
注意:新硬盘不需要同步,已经用过的硬盘需要同步partprobe partx -a /dev/sdd
2、mkswap /dev/sdd1 创建/dev/sdd1的文件系统为swap
可以用blkid查看swap文件系统是否创建。
3、vim /etc/fstab uuid=xxxx swap swap default,pri=100 0 0 优先级为100
4、swapon -a 读取优先级文件 /etc/fstab
swapon -s = cat/proc/swaps 查看已经启用的swap
删除swap分区:必须先1.swapoff /dev/XXX ,在删除2.vim /etc/fstab 、再 3.fdisk /dev/XXX d删除 ;w保存
5.2 文件模拟创建swap分区
如果仅有一个硬盘且分区用光,可以用文件模拟swap
1.dd if=/dev/zero of=/swapfile bs=1M count=1024
2.然后mkswap /swapfile 格式化,不用考虑同步 ;再blkid /swapfile 可以查看swap文件系统
3.编辑 vim /etc/fstab /swapfile swap swap defaults 0 0
4.swapon -a ; free(查看swap分区的使用情况) ; swap -s (查看已经启用的swap)
删除swap分区:swapoff /swapfile vim /etc/fstab 删除swapfile行 ,最后rm -rf /swapfile
六、磁盘管理常用工具
6.1 free内存空间使用状态
free [OPTION] free -m
-m: 以MB 为单位 ; -g: 以GB 为单位
6.2 df文件系统空间占用等信息的查看工具
df [OPTION]… [FILE]… df -Th df -i
-H 以1000 为单位 ;-T 文件系统类型 ;-h: human-readable 可读的
-i :inodes instead of blocks (节点而不是块) ; -P: 以Posix 兼容的格式输出
6.3 du查看某目录总体空间占用状态
du [OPTION]… DIR
-h: human-readable可读的 ; -s: summary统计 du -sh
6.4 dd 转换和复制文件
dd:convert and copy a file用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=# :block size, 复制单元大小 ; count=# :复制多少个bs
of=file 写到所命名的文件而不是到标准输出 ; if=file 从所命名文件读取而不是从标准输入
bs=size 指定块大小(既是是ibs 也是obs) ; ibs=size 一次读size 个byte
obs=size 一次写size 个byte ;cbs=size 一次转化size 个byte
skip=blocks 从开头忽略blocks 个ibs 大小的块 ;eek=blocks 从开头忽略blocks 个obs 大小的块
count=n 只拷贝n个记录 conv=conversion[,conversion…] 用指定的参数转换文件
v 转换参数:
v ascii 换 转换 EBCDIC 为 为 ASCII ; ebcdic 换 转换 ASCII 为 为 EBCDIC
v block 转换一行数据为长度为 cbs 的记录,不足部分用空格填充。
v unblock 替代cbs 长度的每一行尾的空格为新行
v lcase 把大写字符转换为小写字符 ;ucase 把小写字符转换为大写字符
v nocreat 不创建输出文件; noerror 出错时不停止 ; notrunc 不截短输出文件
v sync 把每个输入块填充到ibs 个字节,不足部分用空(NUL)
6.4.1 备份和破坏MBR分区信息
备份MBR分区信息
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
v 破坏MBR 中的bootloader 引导程序
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
示例:有一个大与2K 的二进制文件fileA。 。 现在想从第64 个字节位置开始读取,需要读取的大小是128Byts 。又有fileB, 想把上面读取到的128Bytes 写到第32 个字节开始的位置,替换128Bytes ,请问如何实现?
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
6.4.2备份和恢复
备份:
dd if=/dev/sdx of=/dev/sdy :将本地的/dev/sdx 整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image :将/dev/sdx 全盘数据备份到指定路径的image 文件
dd if=/dev/sdx | gzip >/path/to/image.gz:备份/dev/sdx 全盘数据,并利用gzip 工具进行压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/sdx : 将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx :将压缩的备份文件恢复到指定盘
6.4.3 拷贝与销毁数据
拷贝内存资料到硬盘:dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root 目录下的mem.bin 文件
从光盘拷贝iso 镜像:dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root 文件夹下,并保存为cd.iso 文件
销毁磁盘数据:dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1 将无法挂载,创建和拷贝操作无法执行。
6.4.4 硬盘测试
6.4.4.1得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
通过比较dd 指令输出中所显示的命令执行时间,即可确定系统最佳的block size 大小
6.4.4.2 测试硬盘读写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
通过上两个命令输出的执行时间,可以计算出测试硬盘的写/读/速度
6.4.5修复硬盘
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2 年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O 错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回 生,且这个过程是安全高效的。
原创文章,作者:lyx,如若转载,请注明出处:http://www.178linux.com/61082