@mrz1
2017-12-11T13:09:10.000000Z
字数 12829
阅读 1400
笔记
https://www.zybuluo.com/mrz1/note/967503#yum仓库
注意:centos5 中如果是挂载光盘的话路径是/misc/cd/Server/
[root@centos7 ~]#ll /dev/sda
brw-rw----. 1 root disk 8, 0 Dec 2 10:17 /dev/sda //8主要编号大类别;0次设备号这个类别第几个
硬盘接口类型
并行:IDE: 133MB/s SCSI: 640MB/s【淘汰:速度受影响】
串口:SATA: 6Gbps SAS: 6Gbps USB: 480MB/s
rpm: rotations per minute(磁盘转速)
大写的B是字节 小写b代表位 一个字节八位
SATA家用电脑 SAS服务器上 火线接口是特别高速
打开图形化分区centos7是gnome-disks;centos6是gnome-disks
硬盘存储术语
head:磁头 8个位表示磁头数;2^8共256个磁头
track:磁道 是按10位来存的;2^10共(外圈-内圈)0-1023个(1024)磁道
cylinder: 柱面 大小:256*63/512/1024=8064KB
sector: 扇区,6位2^6=64个存放扇区;但是其实是63个扇区;每个扇区512bytes;
硬盘存储早期:大小:256*1024*63*512/1024/1024/1024=7.875G
提高访问速度放到外圈
[root@centos6 ~]#fdisk -l //centos6提示警报
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x000b7f0c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 131 1048576 83 Linux
Partition 1 does not end on cylinder boundary. //提示
/dev/sda2 131 6505 51200000 83 Linux
/dev/sda3 6505 9055 20480000 83 Linux
/dev/sda4 9055 26109 136985600 5 Extended
/dev/sda5 9055 9316 2097152 82 Linux swap / Solaris
hexdump /dev/sda -C -n 512 二进制访问
1.先把前512bytes中64bytes备份
[root@centos6 ~]#dd if=/dev/sda of=/app/mbr bs=1 count=512
把/dev/sda/前512字节备份到/app/mbr/;bs=1是一个字节一个字节的读;conut=512是读512个字节
[root@centos6 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446
把/dev/sda 中64个字节删除掉 skip=446 seek=446是跳过前面446个字节
[root@centos6 ~]#lsblk //内存中的分区表
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 19.5G 0 part /app
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
[root@centos6 ~]#fdisk -l /dev/sda // 磁盘上真正分区表
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x000b7f0c
//空的
Device Boot Start End Blocks Id System
2.再把mbr备份到到另一台服务器上 scp /app/mbr IP地址:/root
3.重启 光盘启动 之后配置下网络 再把mbr备份回来scp IP地址:/root/mbr/ /
ok重启完成
仅供参考:
[root@centos6 ~]#echo '- - -' > /sys/class/scsi_host/host2/scan //扫描硬盘
[root@centos6 app]#dd if=/app/mbr of=/dev/sdb bs=1 count=66 skip=446 seek=446 //复制mbr512字节到/dev/sdb/里面
66+0 records in
66+0 records out
66 bytes (66 B) copied, 0.00123042 s, 53.6 kB/s
[root@centos6 app]#lsblk //查看看不到
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 19.5G 0 part /app
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 100G 0 disk
sdc 8:32 0 80G 0 disk
[root@centos6 app]#fdisk -l /dev/sdb //这个能看到
Warning: invalid flag 0x0000 of partition table 5 will be corrected by w(rite)
Disk /dev/sdb: 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: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 131 1048576 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2 131 6505 51200000 83 Linux
/dev/sdb3 6505 9055 20480000 83 Linux
/dev/sdb4 9055 26109 136985600 5 Extended
[root@centos6 app]#dd if=/dev/sda of=/dev/sdb bs=1 count=66 skip=446 seek=446 //复制/dev/sda512字节到/dev/sdb/里面
1.GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)
数据大小 B KB M G T P E Z Y B N D
2.使用128位UUID(Universally Unique Identifier)表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位
[root@centos6 ~]#uuidgen //生成uuid
aec90c53-efa6-4f11-8ed8-b810792ce889
3.UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动
1. 打开图形化分区centos7是gnome-disks;centos6是gnome-disks
2.[root@centos6 ~]#ls /dev/sd* //看的是内存
/dev/sda /dev/sda2 /dev/sda4 /dev/sdb /dev/sdb2 /dev/sdb4
/dev/sda1 /dev/sda3 /dev/sda5 /dev/sdb1 /dev/sdb3 /dev/sdc
3.[root@centos6 ~]#cat /proc/partitions //看的是内存
major minor #blocks name
8 0 209715200 sda
.....省略
4.[root@centos6 ~]#lsblk //看的是内存
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
.....省略
5.[root@centos6 ~]#fdisk -l //看的是磁盘
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x000b7f0c
.....省略
用法:parted [选项]... [设备 [命令 [参数]...]...]
parted /dev/sdb mklabel gpt|msdos //创建
parted /dev/sdb print //查看(gdisk /dev/sdb 也可以查看有提示详细)
parted /dev/sdb mkpart primary 1 1000(实际999M) (默认M)//创建容量
parted /dev/sdb rm 1 //删除
parted -l
[root@centos6 ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=512 //删除分区
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0519818 s, 9.8 kB/s
fdisk /dev/sdb
管理分区;有报警是以柱面分 fdisk -u=cylinders /dev/sda
fdisk /dev/sdb -c
不出现报警;还是以柱面分 fdisk /dev/sdb -c
不出现报警;以扇区分
用法:parted [选项]... [设备 [命令 [参数]...]...]
parted /dev/sdb mklabel gpt|msdos //创建
parted /dev/sdb print //查看(gdisk /dev/sdb 也可以查看有提示详细)
parted /dev/sdb mkpart primary 1 1000(实际999M) (默认M)//创建容量
parted /dev/sdb rm 1 //删除
parted -l
perted /dev/sdb mklabel msdos //删除所有
分区设备名不稳定 还有注意夹缝问题 (视频:3分区管理)
echo -e "n\np\nl\n\n+10G\nw\n" | fdisk /dev/sdc //新硬盘自动创建分区
[root@centos7 ~]#fdisk /dev/sdc <<EOF //新硬盘自动创建分区
> n
> p
> 2
>
> +6G
> w
> EOF
老硬盘自动创建分区 最后需要加同步
老硬盘创建分区$?=1 因为有警报没同步
新硬盘创建分区$?=0
uname –r
/kernel/fs [root@centos7 ~]#ls /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/
[root@centos6 ~]#ls /lib/modules/2.6.32-696.el6.x86_64/kernel/fs/
/lib/modules/2.6.32-696.el6.x86_64/kernel/fs/fat/vfat.ko
[root@centos7 ~]#blkid /dev/sr0 /dev/sr0: UUID="2017-09-06-10-53-42-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
e2label /dev/sdb1 //查看卷标
tune2fs -l /dev/sdb1 //也可以查看卷标;但只能看ext系列
e2label /dev/sdb1 /mut/sdb1 //设置卷标为/mut/sdb1
建系统是后面可以加卷标
(3) mke2fs /dev/sdb3 //ext2 没有日志功能
(3) mke2fs -j /dev/sdb3 //ext3 -j 是加上日志功能
2. blkid 查看文件系统
3. tune2fs -l /dev/sdb1 //查看日志功能 有这个has_journal代表有日志功能
tune2fs -O has_journal /dev/sdb2 //给ext2 添加日志功能变成ext3
tune2fs -O ^has_journal /dev/sdb2 //给ext3 删除日志功能变成ext2
在centos6 /dev/sdb1 上建ext2系统之后再建系统会覆盖没提示
在centos7 /dev/sdb1 上建xft系统之后再建系统会提示您
[root@centos6 ~]#tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 8d328e36-97ec-4bee-9511-e6ed54344db5 //UUID
Filesystem magic number: 0xEF53 //文件类型
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize //文件系统属性
Filesystem flags: signed_directory_hash
Default mount options: (none) //挂载选项 安装操作系统时有ACL 后期安装操作系统是没有ACL tune2fs -o acl /dev/sdb2 这个是添加acl 添加^acl 是删除 没有acl,之后设置acl就会失败 centos7默认有acl功能 centos6默认没有acl功能
Filesystem state: clean //文件系统状态:干净;出现故障后 fsck /dev/sdb1 检查文件系统并修复 数据有可能丢失
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 2000 //节点数 修改Inode大小 mkfs.ext4 -N 20000 /dev/sdb1
Block count: 8000 //块数 Inode节点数超过块数没意义 浪费节点数 mkfs.ext4 -i 40960 /dev/sdb1 这个命令是为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
Reserved block count: 400 //保留块数 是给root 用的 设置保留块大小 mkfs.ext4 -m 1 /dev/sdb1 1:保留1% 不能太小 整理磁盘
Free blocks: 6676
Free inodes: 1989
First block: 1
Block size: 1024 //块数:一块大小 文件在小 假如:内容1字节 空间占用1024字节 设置块占用大小 mkfs.ext4 -b 2048 /dev/sdb1
Fragment size: 1024
Reserved GDT blocks: 31
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2000
Inode blocks per group: 250
Flex block group size: 16
Filesystem created: Sun Dec 3 10:42:32 2017 //文件系统创建时间
Last mount time: n/a //最后挂载时间
Last write time: Sun Dec 3 10:42:32 2017 //最后一次写时间
Mount count: 0 //挂载次数
Maximum mount count: 34 //达到最大挂载数 执行系统检查 fsck /dev/sdb1 检查文件系统
Last checked: Sun Dec 3 10:42:32 2017
Check interval: 15552000 (6 months) //达到六个月 执行系统检查 fsck /dev/sdb1 检查文件系统
Next check after: Fri Jun 1 10:42:32 2018
Lifetime writes: 1401 kB
Reserved blocks uid: 0 (user root) //保留块
Reserved blocks gid: 0 (group root) //保留块
First inode: 11
Inode size: 128 //一个inode记录占用磁盘的空间大小 默认128---4096
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 4ddeddea-581d-455d-af1d-645f589699b9
Journal backup: inode blocks
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:关闭指定特性
[root@centos6 ~]#blkid -U `sed -rn 's#^UUID=(.*) /app .*#\1#p' /etc/fstab` //查找设备名
/dev/sda3
tune2fs:重新设定ext系列文件系统可调整参数的值
-l:查看指定文件系统超级块信息;super block
-L 'LABEL':修改卷标
-m #:修预留给管理员的空间百分比
-j: 将ext2升级为ext3
-O: 文件系统属性启用或禁用, –O ^has_journal
-o: 调整文件系统的默认挂载选项,–o ^acl
-U UUID: 修改UUID号
dumpe2fs:
块分组管理,32768块
-h:查看超级块信息,不显示分组信息
1. 前面都有一个MBR,
2. 在第二个主分区,
3. 有一个所谓第一个扇区Boot Sector;如果是EXT2文件系统EXT2 File System
4. 做了分组叫块组第一个Block Group 0 .....Block Group N
5. 每个块库自己的:
Super Block :超级块 所谓的分组;从哪到哪一个分组块组;每个文件系统元数据;超级块会默认备份,每个分组(块组)前面都有,但不全的都有
GDT :组的描述信息
Block Bitmap:位映射 记录所有块占用还是没占用0没占用1占用
iNode Bitmap:记录节点编号用了还是没用
inode Table:书的目录;包括节点号,节点类型,属性,链接号,UID,GID...还有个指针(记录书的内容在哪里那个块)
Data Blocks:数据块;书的内容
dumpe2fs /dev/sdb2 //查看分区的分组情况 记录里面一个分组几个块,还有超级块的位置;超级块的备份
[root@centos6 ~]#mkfs.ext3 /dev/sdb1 创建块的也可以看到超级块的备份在哪里
mke2fs 1.41.12 (17-May-2010)
......
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 //超级块的备份在哪里
......
[root@centos6 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.107903 s, 97.2 MB/s
[root@centos6 ~]#dumpe2fs /dev/sdb3
dumpe2fs 1.41.12 (17-May-2010)
dumpe2fs: Bad magic number in super-block while trying to open /dev/sdb3
Couldn't find valid filesystem superblock.
[root@centos6 ~]#fsck -a /dev/sdb2 //自动修复