加强磁盘管理的学习

1. 对比记忆

   mount /dev/sr0 /mnt/cdrom  /mnt/cdrom为挂载点

   ln -s ../data/f2 /root/f2_link2   /root/f2_link2 为链接文件 

2.分区以往按柱面划分,单个柱面大约8M

[root@centos6 ~]# fdisk -l


Disk /dev/sda: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x0008cf29


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1         128     1024000   83  Linux

Partition 1 does not end on cylinder boundary.                       #由此可见,Centos6的以柱面来划分分区的,单个柱面大小约8M

/dev/sda2             128        6502    51200000   83  Linux

/dev/sda3            6502        7777    10240000   83  Linux

/dev/sda4            7777       13055    42392576    5  Extended

/dev/sda5            7777        8032     2048000   82  Linux swap / Solaris

3.最多4个主分区,可以有1个表扩展分区,注意扩展分区的大小。

  sdb      8:16   0   20G  0 disk 

├─sdb1   8:17   0    2G  0 part 

├─sdb2   8:18   0    2G  0 part 

├─sdb3   8:19   0    3G  0 part 

├─sdb4   8:20   0    1K  0 part 

└─sdb5   8:21   0    2G  0 part 

4.echo -e 'n\np\n\n\n+2G\nw\n' | fdisk /dev/sda

  fdisk /dev/sdc <

5.dumpe2fs /dev/sda2 centos6中查看块(存放文件的最小单元)组,包括文件系统的信息, 每个组中都有超级块的备份

6.tune2fs -l /dev/sda1 查看文件系统信息

  tune2fs -l /dev/sda1 (dumpe2fs -h/dev/sda2)

  使用dumpe2fs /dev/sda1 会比tune2fs -l /dev/sda1 多出来块组的信息

7.linux文件系统支持的块大小 1k 2k 4 k

8.mkfs.ext4 /dev/sdb2 -b 1024  指定块大小

9.预留空间留给root使用 mkfs.ext4 /dev/sdb2 -b 1024 -m 0.1  0.1倍的block count,可以设置预留空间大小 -m选项

10.一个inode <--> 一个file --> 可能占用多个block块,一个大文件可能占用多个block块, inode与file 是一对一关系

11.tune2fs -O has_journal  /dev/sda2 可以为ext2 增加日志功能,增加后变成ext3文件系统

   tune2fs -O ^has_journal  /dev/sda2 禁用后变回ext2文件系统

   tune2fs -l 查看,修改 文件系统 -j (journal) 增加日志功能,增加后变成ext3文件系统

12.mkfs.ext4 使用卷标 使用-L 设为挂载点目录相同方便管理

13.blkid -U `grep ....| sed`

   blkid -U `grep  | cut ...`

14.e2label 修改或显示卷标

15.findfs LABEL=/dev/sdb  通过卷标查找设备名

16.设备名(分区名) label名 UUID名都可以标识一个设备,但是用UUID标识设备较为稳妥,因为设备名有可能会随着设备的增加删除而发生改变

17.fsck 修复时要先umount

18.tune2fs -l /dev/sda1 可以查看磁盘文件系统是否故障,如: Filesystem state:         clean 文件系统无故障

   Filesystem state:           not clean, 文件系统有故障 每个块组中会有超级块备份,但不是所有的块组都有超级块备份

   dd if=/dev/zero of=dev/sdb1 bs=20M count=1 模拟故障20M,再通过 tune2fs -l /dev/sdb1 来查看Filesystem state 状态

19.e2fsck -f 强制检测磁盘,没有-f初步检测,检测有可能会不完全,使用-f 选项会全盘检测,速度慢,检测之前要先umount

20.fsck 自动调用相关工具,可以检测xfs文件系统,fsck提示信息可以查看到通过那个具体命令来实现的检测

21.xfs不兼容ext文件系统

22.挂载后才可以访问文件,挂载的文件夹就是访问文件的入口

23.1个挂载点(文件夹)只能挂一个分区,挂载点要使用空文件夹,一个设备可以挂载多个文件夹

24.数据存放在挂载的分区上,但文件夹是存放在属于它分区上

25.cat /etc/mtab 随着挂载自动更新 挂载表

26.mount LABEL=/data/sdb2 /data/sdb2

27.mount UUID="e0b2b1fd-38dd-48b4-8e52-9642bb1364b6" /data/sdb2, blkid可以查看UUID,可以使用uuidgen 来生成uuid

28.blkid 查看是否有文件系统

29.mount -r /dev/sdb1 /data/sdb1 只读方式挂载 默认是读写挂载

30.cat /proc/mounts 只能看该文件才可以看见隐藏的挂载也可以看见 mount -n ...(centos6中隐藏看不见 ) 链接指向不同

31.挂载目录 使用-B  (--bind) 选项

32.37次挂载触发检查fsck  

33.tune2fs -C(-c) 次数

34.tune2fs -o acl /dev/sdb1 增加acl功能,重新挂载后生效 去掉使用^

   mount -o acl /dev/sdb1 /data/sdb1

   mount -o noacl,remount /dev/sdb1 ...  修改挂载选项,在不能使用umount情形下使用

35.mount -o remount,ro /data/sdb1

36.fuser -v /data/sdb1 查看挂载目录(/data/sdb1不是/dev/sdb1)的使用进程(lsof /data/sdb1)

   fuser -km /data/sdb1 强制踢出用户卸载 (慎用)

37.findmnt /data/sdb1 查看文件夹是否处于挂载状态  (目录挂载目录时可以查看是否被挂载)

   findmnt mount_point|device  查看挂载情况

   [root@centos7 ~]#findmnt /data/sdb1

TARGET     SOURCE    FSTYPE OPTIONS

/data/sdb1 /dev/sdb1 ext4   rw,relatime,data=ordered      #可以查看到挂载选项,还可以查看到文件系统类型

[root@centos7 ~]#findmnt /dev/sdb1

TARGET     SOURCE    FSTYPE OPTIONS

/data/sdb1 /dev/sdb1 ext4   rw,relatime,data=ordered


find /home 查看home是否为挂载目录

[root@centos7 ~]#findmnt /home

[root@centos7 ~]#findmnt /bin

[root@centos7 ~]#findmnt /

TARGET SOURCE    FSTYPE OPTIONS

/      /dev/sda2 xfs    rw,relatime,attr2,inode64,noquota

38.写数据的时候先放入buffer缓冲区,在系统不繁忙时在写入磁盘(异步:默认)

   同步会直接写入磁盘,效率不高,文件有磁盘写入内存时,是先将数据写到内存的cache中,而内存中的数据要写入磁盘中时,是先将数据写到buffer中,所以在一个磁盘向另外一块磁盘写数据的时候 是磁盘1 --> 缓存cache中 --> 缓存buffer中 --> 写到另外一块磁盘

39.noatime 读文件是否更新时间,可以提高性能 mount -o 选项

40.mount选项noexece 不让执行可执行文件,可以使用bash *.sh 来执行

   mount -o remount,noexec ...

41.mknod zero c 1 5  不是-c

   dd 可传入数据,可使用设备文件

   mount -o remount, nodev

   dd 不可传入数据,不可使用设备文件

42.所有的文件属性都是由所在的挂载点的中属性中

43.vim拥有root权限可以修改所有文件,因为拥有suid权限,使用mount -o nosuid 来禁用

44.mount -o loop 将文件挂载目录上,文件模拟分区使用

   dd if=/dev/zero of=/root/p1 bs=1M count=100

   mkfs.ext4 p1

   使用blkid p1 可以查看到文件系统,blkid查看不到

   mount -o loop /root/p1 /mnt

   mount  可以不加loop选项 直接挂载文件

45.losetup -a  可以查看挂载后的/dev/loop0 与文件名的映射关系(centos6 mount中可查看)

46.ls /dev/loop*  最多8个loop设备,可以自己创建多个 mknod /dev/loop8 b 7 8(centos6,centos7 中loop设备无限制)

47.losetup /dev/loop8 p2 p2文件与loop8 建立关系

48.mount /dev/loop8 ..

49.kernel 行 添加 max_loop=100 /boot/grub/grub.conf配置文件,重启后loop设备数修改

50.分区可挂载  文件夹可挂载 -B(--bind)  文件挂载(-o loop) 

51.访问文件需要通过文件夹,所以通过文件夹挂载

52.命令挂载是临时挂载,永久挂载修改配置文件(/etc/fstab)

   tune2fs -o acl /dev/sdb1 是修改的源数据 ,磁盘上

53.设备名 卷标名 UUID名(最好)均可(/etc/fstab)

   UUID  挂载点 文件系统 defaults(ro,nouser)  1(备份时间,1表示一天备份一次,需要结合备份工具使用,不常用,0表示不备份.)  1  检查文件系统完整性顺序1表示为最先检查,0表示不检查

54.mount -a 重新挂载/etc/fstab ,有auto选项的可以mount -a 来重读  default有auto选项

55./etc/fstab文件重要,可考虑备份

56.MBR分区时,单个最大分区是2T,因为使用32位表示扇区数(2**32=4G,删除的字节数为512B  4G*512G=2048/1024=2T),分区不超过2T,0磁道0扇区的512字节有特殊用途

   446字节存储bootloader,64字节存储分区表  2字节存储是否已经划分分区(55AA)

57.vim /etc/grub.conf(/boot/grub/grub.conf的链接文件)

   kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=b6032312-9cab-4be8-845b-b4a266d3d7c8 rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet max_loop=20

58. 自己记忆的是链接文件: /etc/grub.conf 和 /etc/sysconfig/selinux

[root@centos6 dev]# ll /etc/grub.conf

lrwxrwxrwx. 1 root root 22 Mar 27 17:35 /etc/grub.conf -> ../boot/grub/grub.conf

[root@centos6 dev]# vi /boot/gull^C

[root@centos6 dev]# ll /etc/sysconfig/selinux 

lrwxrwxrwx. 1 root root 17 Mar 27 17:23 /etc/sysconfig/selinux -> ../selinux/config

59.修改fstab文件不能直接使用mount -a 需要先umount

   可以直接mount -o remount /data/sdb2  直接生效修改条目

60.tune2fs -U `uuidgen` /dev/sdb2 修改UUID

61.mount -o rw,remount / 修复状态时无法写时执行,UUID如果错误(挂载点删除后不影响系统启动) 校验为为0时系统可以启动但有报错

   非0时则会报错,系统将无法启动,输入root密码后 是以只读方式。 所以尽量使用0(最后一位)

62.dd if=dev/zero of=/dev/sdb bs=1 count=512 可以清空分区

   partx -d --nr 1-2 /dev/sdb

63.init 1 单用户,可以防止备份时有人修改数据

64.home 家目录迁移

  1. 备份 /home

  2. fdisk 分区

  3. mkfs.ext4  -L /home  /dev/sdc1     -L 指定卷标

  4. mkdir /mnt/home; mount /dev/sdb1 /mnt/home

  5. init 1 单用户(网断)

  6. cp -av /home/* /mnt/home

  7. rm -rf /home/*

  8. vim /etc/fstab

  UUID=xxx /home ext4 defaults 0 0 

  mount -a

  ls /home /mnt/home -l

  9. rm -rf /mnt/home  umount /mnt/home; 

  10. init 5

65.文件挂载时永久生效 /etc/fstab中必须使用设备名,不能使用UUID /root/p1 /mnt/p1  ext4 loop 0 0 

66.光盘挂载 /dev/sr0 /mnt/cdrom  iso9660 defaults 0 0 

67.文件夹挂文件夹  /boot /mnt/boot  none bind 0 0

68.free -m 命令  内存向磁盘写使用buffer,磁盘相内存写使用cache,buffer和cache是内存中分出的两片区域

   内存used 包含buffer cache空间

   -/+ used - buffer cache |  free + cache buffer

69.有时buffer 和cache中的数据是一样的,buffer cache 是内存中分配的

70 dd if=dev/zero of=/dev/null bs=2048M count=1  超过1g swap 出现使用

71.增加swap分区,放在最外面0磁道  访问速度块

   分区选id 为82 分区时指定

   mkswap /dev/sdb1 -L swap_sdb1  创建文件系统

   r!blkid /dev/sdb1  直接读取命令输出至vim /etc/fstab

   swapon -a  重新读取swap 不能使用mount 来读取swap

   swapon -s (读取的就是cat /proc/swaps)查看swap信息 -1 -2 分区值越大 -1 优先级高, 优先级越高

   defaults,pri=100 修改优先级

   swapoff /dev/sdb1

   swapon -a 生效优先级

72.删除分区可以使用fdisk 也可以使用dd毁坏分区表512字节 dd命令

73.创建swap分区

   1.fdisk /dev/sdb1    t 82

   dd if=/dev/zero of=/swapfile bs=1M count=2048

   2.mkswap /dev/sdb1 -L swap_sdb1

   3.vim /etc/fstab

    UUID=xxx swap swap defaults,pri=100 0 0 

   4.swapon -a

   5.swapon -s 查看swap分区信息

     [root@centos7 ~]#swapon -s

Filename Type Size Used Priority

/dev/sda3                               partition 2047996 1748 -1

   6.swapoff /dev/sdb1 禁用 swap

74./dev/cdrom  --> sr0 mount /dev/cdrom 通用 ll /dev/cdrom 链接

75.eject 弹出光盘,可定位出故障服务器

76.cp /devsr0 /data/centos.iso 制作镜像iso文件,可用来引导系统

77.mount /data/centos7.iso  /mnt/iso

78.dd if=/dev/sr0 of=/data/**.iso 

79.mkisofs -r -o etc.iso /etc/

   file etc.iso

   centos7 不用-o loop centos6 需要使用 -o loop

80.制作iso合集

   创建文件夹,将素有镜像文件拷贝进去

   使用mkisofs  该合集不能作为引导系统

81.wiki.centos.org ,搜索mkdvdiso,脚本制作引导合集iso

82.tail /var/log/messages -f U盘识别后有信息

83.拷贝数据至u盘的时候  需要sync一下,否则数据在buffer中未传输进去

   sync执行3次,防止执行一次不成功

84.文件最小的分配单元是块 

85.dd if=f1 of=f2 会覆盖否目标文件 bs=1 count=3 skip? 

86.dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446

87./dev/urandom 随机设备 /dev/mem 内存设备 /dev/cdrom 光盘设备

88. raid0 分隔单位 chunk 256 条带集

    raid5 最少3块 1位校验

    raid6 最少4块 两位校验

89.硬raid只能看见一块硬盘,软raid是mdN

90.dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446  只填充分区表的46字节