加强磁盘管理的学习
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字节