2017 linux 修复 硬盘,Linux学习之二十四(硬盘管理及文件系统管理:fdisk/mke2fs/tune2fs)-2017-5-4...

磁盘管理:

机械式硬盘:U盘、光盘、软盘、硬盘、磁带

低级格式化:硬盘出厂所做

Partition:分区

分区是为了文件系统

MBR;Master Boot Record主引导记录(0磁道0扇区的512byte)

Main Boot Record

446byte:BootLooder,引导记录

64byte:只能标示4个分区

16byte:标示一个分区

2byte:Magic Number魔数,用来标记MBR是否有效

1、创建链接:

ln [-s -v] SRC(源文件)  DEST(链接文件)

-s:创建符号链接

-sv:创建符号链接并显示源文件和链接文件名称

(1)硬链接:

1、只能对文件创建,不能对目录进行链接;

2、不能跨文件系统;

3、创建硬链接会增加文件被链接的次数;

4、文件ID号相同

例:[root@Ourlab backup]# ln abc test/abc2

[root@Ourlab backup]# ls -l

总计 60

-rw-r--r--  1 root root     0 05-02 23:33 a

-rwxr-xr-x+ 2 root root 26815 05-07 23:14 abc

[root@Ourlab backup]# ls -i

162083 a  162088 abc  162084 b  162085 c  162082 inittab  162087 test

[root@Ourlab backup]# ls -i ./test

162088 abc2

(2)符号链接:

1、可应用于目录;

2、可以跨文件系统;

3、不会增加被链接文件的链接次数;

4、其大小为指定的路径所包含的字符个数;

例:[root@Ourlab backup]# ls -li

总计 60

162083 -rw-r--r--  1 root root     0 05-02 23:33 a

162088 -rwxr-xr-x  1 root root 26815 05-07 23:38 abc

[root@Ourlab backup]# ls -li ./test

总计 4

162086 lrwxrwxrwx  1 root root 11 05-07 23:47 abc2 -> /backup/abc

2、du:显示目录下可以属主具备执行权限的每个文件的大小;

例:[root@Ourlab ~]# du /backup

12    /backup/test

72    /backup

-s:显示目录整体大小;

-h:单位换算

3、-df:显示整个磁盘分区

例:[root@Ourlab ~]# df

文件系统               1K-块        已用     可用 已用% 挂载点

/dev/sda2              9920624   2848284   6560272  31% /

/dev/sda3              2972268     70800   2748048   3% /home

/dev/sda1               988088     23636    913448   3% /boot

tmpfs                   257416         0    257416   0% /dev/shm

-h:单位换算

例:[root@Ourlab ~]# df -h

文件系统              容量  已用 可用 已用% 挂载点

/dev/sda2             9.5G  2.8G  6.3G  31% /

/dev/sda3             2.9G   70M  2.7G   3% /home

/dev/sda1             965M   24M  893M   3% /boot

tmpfs                 252M     0  252M   0% /dev/shm

-i:显示每个磁盘分区ID

-P:不进行换行显示

4、设备文件:

b:按块为单位,随机访问的设备,如:硬盘;

c:按字符为单位,线性设备,如:键盘;

5、/dev

主设备号(major number)

标识设备类型

次设备号(minor number)

标识同一种类型中不同设备

6、mknod:创建块或字符特殊文件

mknod [OPTION]... NAME TYPE [MAJOR MINOR]

例:[root@Ourlab ~]# mknod mydev c 66 0

[root@Ourlab ~]# ls -l

crw-r--r-- 1 root root 66, 0 05-08 22:16 mydev

-m:指定文件权限

例:[root@Ourlab ~]# mknod -m 640 mydev2 c 66 1

[root@Ourlab ~]# ls -l

crw-r----- 1 root root 66, 1 05-08 22:18 mydev2

7、硬盘设备的设备文件名:

IDE,ATA:以hd开头

SATA:以sd开头

SCSI:以sd开头

USB:以sd开头

同一种类型下的硬盘用a,b,c...来区别同一种类型下的不同设备

IDE:

第一个IDE口:主、从

/dev/hda, /dev/hdb

第二个IDE口:主、从

/dev/hdc, /dev/hdd

8、fdisk:查看当前系识别了几块硬盘:

fdisk:Linux分区表操纵器

fdisk -l [/dev/to/some_device_file]

例:查看系统上所有磁盘分区

[root@Ourlab ~]# fdisk -l

Disk /dev/sda: 128.8 GB, 128849018880 bytes

255 heads, 63 sectors/track, 15665 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device    Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1         127     1020096   83  Linux

/dev/sda2             128        1402    10241437+  83  Linux

/dev/sda3            1403        1784     3068415   83  Linux

/dev/sda4            1785       15665   111499132+   5  Extended

/dev/sda5            1785        1911     1020096   82  Linux swap / Solaris

例:查看指定分区

[root@Ourlab ~]# fdisk -l /dev/sda1

Disk /dev/sda1: 1044 MB, 1044578304 bytes

255 heads, 63 sectors/track, 126 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda1 doesn't contain a valid partition table

9、管理磁盘分区:

(1)fdisk /dev/sda

p:显示当前硬件的分区,包括没保存的改动

n:创建新分区

e:扩展分区

p:主分区

d:删除一个分区

w:保存退出

q:不保存退出

t:修改分区类型

L:显示所支持的所有类型;#与t搭配使用#

l:显示所支持的所有类型

(2)查看当前内核上识别了哪些分区:

cat /proc/partitions

(3)partprobe:通知内核重读硬盘分区表

10、文件系统管理:

(1)cat /proc/filesystems:查看当前内核所支持文件系统类型

(2)mkfs:make file system

-t FSTYPE 指定分区类型

mkfs -t ext2 = mkfs.ext2

例:[root@Ourlab ~]# mkfs -t ext2 /dev/sda5

mkfs -t ext3 = mkfs.ext3

11、专门管理ext系列文件;

(1)mke2fs:默认创建ext2类型文件系统

例:[root@Ourlab ~]# mke2fs /dev/sda5

-j:创建ext3类型文件系统

例:[root@Ourlab ~]# mke2fs -j /dev/sda5

-b BLOCK_SIZE:指定块大小,默认为4096,可用取值1024、2048或4096;

例:[root@Ourlab ~]# mke2fs -b 2048 /dev/sda5

-L LABEL:指定分区卷标;

例:[root@Ourlab ~]# mke2fs -L MYDATA /dev/sda5

-m #:指定预留给超级用户的块数百分比

例:[root@Ourlab ~]# mke2fs -m 2 /dev/sda5

-i #:用于指定为多少字节的空间创建一个inode,默认为8192:这里给出的数值应该为块大小的2^n倍;

例:[root@Ourlab ~]# mke2fs -i 4096 /dev/sda5

-N:指定inode个数;

-F:强制创建文件系统;

-E:指定额外的文件系统属性;

12、blkid:查询或查看磁盘设备的相关属性

UUID

TYPE

LABEL

例:[root@Ourlab ~]# blkid /dev/sda5

/dev/sda5: UUID="1211aeb1-710b-4c33-8c6f-28b41bc74fbd" TYPE="ext2"

13、e2label:用于查看或定义卷标

e2label 设备文件 卷标:设定卷标

例:[root@Ourlab ~]# e2label /dev/sda5 HELLODATA

[root@Ourlab ~]# e2label /dev/sda5

HELLODATA

14、tune2fs:调整文件系统的相关属性

-j: 不损害原有数据,将ext2升级为ext3;

例:[root@Ourlab ~]# tune2fs -j /dev/sda5

-L LABEL:设定或修改卷标;

例:[root@Ourlab ~]# tune2fs -L MYDATA /dev/sda5

-m #:调整预留百分比;

例:[root@Ourlab ~]# tune2fs -m 5 /dev/sda5

-r #:指定预留块数;

例:

-o:设定默认挂载选项;

acl:指定挂载的选项具备acl

-c #:指定挂载次数达到#次后进行自检,0或1表示关闭此功能;

-i #:每挂载使用多少天后进行自检,0或-1表示关闭此功能;

-l:显示超级块中的信息;

13、dumpe2fs:显示文件属性信息

-h:只显示超级块中的信息

14、fsck:检查并修复Linux文件系统

-t FSTYPE:指定文件系统类型

-a:自动修复

15、e2fsck:专用于修复ext2、ext3文件系统

-f:强制检查;

-p:自动修复;

例:[root@Ourlab ~]# e2fsck -f -p /dev/sda5

16、挂载:将新的文件系统关联至当前根文件系统

17、卸载:将某文件系统与当前根文件系统的关联关系予以移除;

(1)mount:挂载

mount 设备[卷标或UUID] 挂载点

1)设备:

设备文件:/dev/sda5

例:[root@Ourlab ~]# mkdir /mnt/test

[root@Ourlab ~]# mount /dev/sda5 /mnt/test

[root@Ourlab ~]# cd /mnt/test

[root@Ourlab test]# ls

lost+found

卷标:LABEL=""

UUID: UUID=""

2)挂载点:目录

要求:

1、此目录没有被其它进程使用;

2、目录得事先存在;

3、目录中的原有的文件将会暂时隐藏;

(2)mount:显示当前系统已经挂载的设备及挂载点;

(3)mount [options] [-o options] DEVICE MOUNT_POINT

-a:表示挂载/etc/fstab文件中定义的所有文件系统

-n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;

使用-n选项意味着挂载设备时,不把信息写入此文件;

例:[root@Ourlab ~]# mount -n /dev/sda5 /mnt/test

-t FSTYPE:指定正则挂载设备上的文件系统的类型,不使用此选项时,mount会调用blkid命令获取对应文件系统的类型;

-r:只读挂载,挂载光盘时常用此选项;

-w:读写挂载

-o:指定额外的挂载选项,也即指定文件系统启用的属性

remount:重新挂载当前文件系统

-ro:挂载为只读

例:[root@Ourlab ~]# mount -o remount,ro /dev/sda5

-rw:挂载为读写

18、挂载完成后,要通过挂载点访问对应文件系统上的文件:

19、umount:卸载某文件系统

用法:umount 设备

例:[root@Ourlab ~]# umount /dev/sda5

umount 挂载点

例:[root@Ourlab ~]# umount /mnt/test

卸载注意事项:

1、挂载的设备没有进程使用;

20、cat /proc/filesystems:查看当前内核所支持文件系统类型

课后练习:

1、创建一个2G的分区/dev/sda8,文件系统为ext2,卷标为DATA,块大小为1024,预留管理空间为磁盘分区的8%;挂载至/backup目录,

要求使用卷标进行挂载,且在挂载时启动此文件系统上的acl功能;

# mke2fs -L DATA -b 1024 -m 8  /dev/sda8

# mount -o acl LABEL=DATA /backup

# tune2fs -o acl /dev/sda7

# mount LABEL=DATA /backup

2、将此文件系统的超级块中的信息中包含了block和inode的行保存至/tmp/partition.txt中;

[root@Ourlab ~]# tune2fs -l /dev/sda8 | egrep -i "block|inode" >> /tmp/partition.txt

3、复制/etc目录中的所有文件至此文件系统;而后调整此文件系统类型为ext3,要求不能损坏已经复制而来的文件;

[root@Ourlab ~]# cp -r /etc/* ./backup

[root@Ourlab ~]# tune2fs -j /dev/sda8

4、调整其预留百分比为3%;

[root@Ourlab ~]# tune2fs -m 3 /dev/sda8

5、以重新挂载的方式挂载此文件系统为不更新访问时间戳,并验正其效果;

[root@Ourlab ~]# stat ./backup

[root@Ourlab ~]# mount -o remount,noatime /backup

6、对此文件系统强行做一次检测;

[root@Ourlab ~]# e2fsck -f /dev/sda8

7、删除复制而来的所有文件,并将此文件系统重新挂载为同步(sync);而后再次复制/etc目录中的所有文件至此挂载点,体验其性能变化;

# rm -rf ./backup/*

# mount -o remount,sync ./backup

# cp -r /etc/* ./backup

1、swap分区(交换分区)

(1)虚拟内存

free:查看内存空间

-m:单位换算

(2)fdisk命令中,调整分区类型为82(即swap)

(3)创建交换分区:

mkswap /dev/sda#

-L LABEL:指定卷标名

(4)挂载交换分区:

swapon /dev/sda# :启用交换分区

-a:启用所有的定义在/etc/fstab文件中的交换设备

swapoff /dev/sda# :关闭交换分区

例:利用磁盘剩余的空间,创建swap分区

[root@Ourlab ~]# fdisk /dev/sda    /需要调整分区类型为82(即swap)/

[root@Ourlab ~]# mkswap /dev/sda8

[root@Ourlab ~]# swapon /dev/sda8

(5)回环设备:

loopback,使用软件来模拟实现硬件

(6)创建一个镜像文件,120G

1)dd命令:

if=数据来源

of=数据存储目标

bs=数据块大小

count=bs数

例1:#dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1

例2:利用已有的分区空间,增加swap分区空间;

[root@Ourlab ~]# dd if=/dev/zero of=/var/swapfile bs=1M count=512

[root@Ourlab ~]# mkswap /var/swapfile

[root@Ourlab ~]# swapon /var/swapfile

[root@Ourlab ~]# free -m

seek=#:创建数据文件时,跳过的空间大小

例:[root@Ourlab ~]# dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.00565885 seconds, 185 MB/s

[root@Ourlab ~]# du -sh /var/swapfile2   /查看真实空间大小为:1.1M/

1.1M    /var/swapfile2

[root@Ourlab ~]# ls -lh /var/swapfile2    /虚假空间:前1023M跳过/

-rw-r--r-- 1 root root 1.0G 05-20 22:47 /var/swapfile2

(7)mount命令,可以挂载iso镜像;

mount  DEVICE MOUNT_POINT

-o loop :挂载本地回环设备

例:#mount -o loop /root/rhci-5.8-1.iso /media  /挂载本地镜像文件/

2、文件系统的配置文件/etc/fstab

OS在初始化时,会自动挂载此文件中定义的每一个文件系统

/etc/fstab文件结构:

第一个字段:要挂载的设备

第二个字段:挂载点(挂载位置)

第三个字段:文件系统类型

第四个字段:挂载选项(默认defaults)

第五个字段:转储频率(每多少天做一次完全备份;0表示不做备份;1表示每一天备份一次;2表示每两天备份一次)

第六个字段:文件系统检测次序(只有根为1;1表示首先检测;0表示不检测;2表示1(即根)检测完后检测,可以同时多个出现)

例:[root@Ourlab ~]# cat /etc/fstab

LABEL=/                 /                       ext3    defaults        1 1

LABEL=/home             /home                   ext3    defaults        1 2

LABEL=/boot             /boot                   ext3    defaults        1 2

tmpfs                   /dev/shm                tmpfs   defaults        0 0

LABEL=SWAP-sda5         swap                    swap    defaults        0 0

mount -a :挂载所有的定义在/etc/fstab文件中的交换设备

3、文件挂载成功的信息都会在/etc/mtab文件中;

mount -n DEVICE MOUNT_POINT:文件挂载成功信息不在/etc/mtab文件中保存;

4、fuser:验证进程正在使用的文件或套接字文件

-v:查看某文件上正在运行的进程

-k:

-m:

fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程

练习:

1、创建一个1G的分区,文件系统为ext3,卷标为MYDATA2,块大小为1024,预留管理空间为磁盘分区的3%

要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;

[root@Ourlab ~]# fdisk /dev/sda

[root@Ourlab ~]# mke2fs -j -L MYDATA2 -m 3 -b 1024 /dev/sda7

[root@Ourlab ~]# vim /etc/fstab

LABEL=MYDATA2            /data                   ext3    defaults    0 0

2、创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为512M,卷标为SWAP-FILE,且开机自动启用此交换设备;

[root@Ourlab ~]# mkdir /var/swaptemp

[root@Ourlab ~]# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512

[root@Ourlab ~]# vim /etc/fstab

/var/swaptemp/swapfile   swap                   swap     defaults       0 0

3、上述第一问,如何让其自动挂载的同时启用ACL功能;

[root@Ourlab ~]# vim /etc/fstab

LABEL=MYDATA2            /data                   ext3    defaults,acl    0 0

阅读(498) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值