看!!灰机

博客园 首页 联系 订阅 管理

两种分区方式:MBR,GPT
MBR: Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T       32位 差不多2T    2的32次方除以二
如何分区:按柱面
0磁道0扇区:512bytes
      446bytes: boot loader  关于计算机启动的一些内容 主引导程序
      64bytes:主分区表   
      16bytes: 标识一个分区
     2bytes: 55AA   分区的存在,55aa   16进制数
4个主分区;3主分区+1扩展(N个逻辑分区)

echo '- - -' >/sys/class/scsi_host/host2/scan                                                   刷新新插入的硬盘硬盘

EBR(512字节)  是扩展分区最前面得一点空白区域,每个逻辑分区前面都有
MBR (512字节) 是主分区最前面的一点空白区域

fdisk -l /dev/sda    查看磁盘上的真正的分区表

lsblk   查看内存中的分区表

parted /dev/sdb   mkpart primay 1 1000    mkpart是创建分区的意思
parted /dev/sda print    查看 分区

parted /dev/sda   rm 1  删除分区   慎用

gdisk /dev/sdb 类fdisk 的GPT分区工具   比parted好用
fdisk -l [-u] [device...] 查看分区
fdisk /dev/sdb 管理分区
 子命令:
 p 分区列表
t 更改分区类型
 n 创建新分区
d 删除分区
 v 校验分区
u 转换单位
w 保存并退出
 q 不保存并退出

partx -a /dev/sda  更新分区,新创建分区的时候更新分区的命令     ,这个命令只有在centos6上面好使
partx -d --nr 6-7 /dev/sda    更新分区,删除后磁盘用的更新 6-7 代表两个新创建的分区
     
partprobe    在centos5和7上面 同步磁盘。

tune2fs -l  /dev/sdb3     增加日志功能  增加特性

mount   加分区名字    需要挂在的名字               挂载
在挂载之前要先确定这个挂载点是否是一个目录
umount    取消挂载



一个扇区是512字节    一圈是6位2的6次方,也就是64个扇区
有10个位的圈

dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446  删除其中的64个字节,跳过后面的446个字节

查看磁盘分区有四种方式
1. ls /dev/sd*    看设备名
2. cat /proc/partitions  看内存
3. lsblk   看内存
4. fdisk /dev/sda -l  看磁盘


fdisk 创建MBR分区
 gdisk 创建GPT分区
 parted 高级分区操作
 partprobe-重新设置内存中的内核分区表版本



dd if=/dev/zero of=/dev/sdb bs=1 count=512   创建磁盘
parted /dev/sdb mklabel gpt  更改成 GPT 格式
parted /dev/sdb print
fdisk /dev/sdb print -l   查看磁盘


parted /dev/sdb mklabel msdos   这个是把磁盘全删了,不存在转换问题mklabel msdos

mke2fs  /dev/sdb3    意思就是把sdb3的分区格式改成文件系统ext2的格式     也可以这么写mkfs.ext2   或者mkfs -t ext2
上面的命令如果加上  -j   就多了个日志功能也就从ext2 变成了ext3 文件系统了
tune2fs -o ^has_journal /dev/sdb5     是去除日志功能

cat /etc/mtab    可以查看已经挂载的文件
cat /proc/mounts    这个查看挂载点更全面一些
findmut /文件目录可查看是不是挂载点



blkid   检查分区是否更改正确

挂载方法:mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
 mount [-fnrsvw] [-t vfstype] [-o options] device dir     
 在挂载的时候,如果在这个目录里面是无法取消挂载的,要退出需要取消挂载的目录才可以进行取消挂载。
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如
mount -U "0c50523c-43f1-45e7-85c0-a126711d406e"  /mnt/sdb2    这是通过UUID来挂载分区路径
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在;建议使用空目录
进程正在使用中的设备无法被卸载


fuser -v 加上挂载名字可以查看当前目录是哪个用户在访问。
fuser -km 加上挂载名字可以直接强行的踢走目前正在访问的用户
w 可查看正在登陆的用户的ID端口 ,用 echo Please get out > /dev加上那个用户登录的TTY可以向那个用户发出信息
findmnt /app/   这个命令可查看目录是不是挂载点

-t vsftype:指定要挂载的设备上的文件系统类型
 -r: readonly,只读挂载
 -w: read and write, 读写挂载
 -n: 不更新/etc/mtab,mount不可见
 -a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
 -L 'LABEL': 以卷标指定挂载设备
-U 'UUID': 以UUID指定要挂载的设备
 -B, --bind: 绑定目录到另一个目录上
 查看内核追踪到的已挂载的所有设备
cat /proc/mounts

-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async:异步模式
sync:同步模式,内存更改时,同时写磁盘
atime/noatime:包含目录和文件
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载,是否支持-a选项
exec/noexec:是否支持将文件系统上运行应用程序
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:是否支持suid和sgid权限
remount:重新挂载     用 mount -o remount,跟上ro或者是rw 加上文件或者目录,就可以不用取消挂载给文件设置权限,万一有用户在访问这个文件的时候不方便。
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备,/etc/fstab使用
acl:启用此文件系统上的acl功能        如果分区块上这个acl权限没有启用   setfacl -m u:lixiaozi:w lost+found/      一些加权限的命令都无法使用。 tune2fs -o acl /dev/sdb2  这个命令是给sdb2 增加上了acl权限   tune2fs -l /dev/sdb2   查看有没有加上acl权限
tune2fs -o ^acl /dev/sdb2   取消acl权限命令
loop: 使用loop设备      在centos6 上面用到 -o loop  在centos7上面用不到

使用文件做分区:[root@centos69 app]#dd if=/dev/zero of=partfile bs=1G count=1
[root@centos69 app]#dd if=/dev/zero of=partfile bs=1M count=1024
上面这两条命令都是可以的但是用1M创建文件创建的速度快点
mkfs.ext4 partfile    给这个文件设置一个文件系统。
blkid partfile    查看文件系统
mkdir /mnt/part    创建需要挂载的目录
mount /app/partfile  /mnt/part  挂载会提示要加 -o loop 命令。
mount /app/partfile  /mnt/part -o loop   就可以挂载了


uuidgen 加分区可更改分区uuid
tune2fs  -U  加上UUID号  输入分区名   可更改分区UUID

1 创建分区
fdisk t 82

2 文件系统
mkswap /dev/sdd1  -L SWAP_SDD1

3 配置文件
vim /etc/fstab
UUID=2979b3c4-c0c5-44b1-bf21-a213f90d80a0 swap swap pri=10      0 0

4 生效
swapon -a      更新在fstab 里面加的特殊命令
mount -a  更新在fstab 里面加的普通命令
swapon -s  查看

5 删除 swap
1)swapoff /dev/sdd1    先禁用swap
2)vim /etc/fstab   修改fstab文件
最后去fdisk 里去删除磁盘  fdisk /dev/sdd 删除分区

eject  弹出磁盘
eject -t    弹入磁盘


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大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 只拷贝n个记录
conv=conversion[,conversion...] 用指定的参数转换文件
 转换参数:
 ascii 转换 EBCDIC 为 ASCII
 ebcdic 转换 ASCII 为 EBCDIC
 lcase 把大写字符转换为小写字符
 ucase 把小写字符转换为大写字符
 nocreat 不创建输出文件
 noerror 出错时不停止
 notrunc 不截短输出文件
 
 cp /etc/fstab  /mnt/usb   把U盘中的文件复制到虚拟中去的时候,显示成功了但是很有可能还没有复制完成,只是这些东西还在缓存内存中。这时候用sync命令输入三遍在拔出U盘...sync 是强迫吧缓存中的数据写入磁盘.
 sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐

实验:迁移/Home到新独立分区
1 建立新分区
2 建立文件系统
3 mkdir /mnt/home
mount /dev/sda6 /mnt/home
4 cp /home/* /mnt/home -av
5 tar cvf  /app/home.tar /home
scp remote
6 init 1 断开网络,在远程不要执行
7 rm -rf /home/*
8 vim /etc/fstab
UUID=b0421d9a-8072-4be5-9526-070535ac0a8e /home  ext4   defaults 0 0
9 mount -a
umount /mnt/home
10 init 5 还到原有模式


备份:
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
将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘
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将无法挂载,创建和拷贝操作
无法执行
测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024
count=1000000
 测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
修复硬盘
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会
产生消磁点。当磁头读到这些区域时会遇到困难,并可能
导致I/O错误。当这种情况影响到硬盘的第一个扇区时,
可能导致硬盘报废。上边的命令有可能使这些数据起死回
生,且这个过程是安全高效的

实验:实现配额
1 启用配额功能
vim /etc/fstab
UUID=b0421d9a-8072-4be5-9526-070535ac0a8e /home  ext4   usrquota,grpquota  0 0
2 创建配额数据库
quotacheck -cug
3 启用数据库
quotaon   /home
4 指用户的空间限制
edquota   wang
Disk quotas for user wang (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda6                      1164       800000      1000000        159        162        165
5 测试

/dev/md0  ext4 /mnt/raid
1G chunk 512K

实验:创建LV
pvcreate /dev/sd{a5,b1}
vgcreate vg0 /dev/sd{a5,b1}
lvcreate -n lv0 -L 10G vg0
mkfs.ext4 /dev/vg0/lv0
mount


实验:扩展LV
lvextend -l +100%FREE  /dev/vg0/lv0
resize2fs  /dev/vg0/lv0  extN
xfs_growfs /mnt/lv0   xfs
或者
lvextend  -r -l +100%free  /dev/vg0/lv0


实验:缩减LV
umount /mnt/lv0
fsck -f /dev/vg0/lv0
resize2fs  /dev/vg0/lv0 8G
lvreduce -L 8G /dev/vg0/lv0
mount -a


实验:删除PV
vgdisplay 看可用空间,大于pv的空间
pvmove  /dev/sdc
vgreduce vg0 /dev/sdc
pvremove /dev/sdc

实验:迁移LV到新主机
1 确认VG名和目标主机不同
vgrename vg1 vg100
lvrename lv2 lv100
vgdisplay
pvs

2 umount /mnt/lv2
vgchange -an /dev/vg100/lv100
vgexport vg100

3 拆除,在新主机接入

4
lvs;vgs
vgimport vg100
vgchange -ay vg100
mount /dev/vg100/lv100 /mnt

快照里面是空的,只是在快照之后有什么文件被修改后,原来没有被修改的文件会自动的存入快照中。这样就可以恢复快照,而且比备份省空间
做快照:需要逻辑卷
lvcreate -n lv0-snapshot  -L  1G  -s  -p  r /dev/vg0/lv0          lv0-snapshot  给这个文件做快照的名字            L是快照大小的意思       s是快照的意思      -p  r    是权限     /dev/vg0/lv0 给哪个文件做快照

修改快照:
mkdir /mnt/snap          mount /dev/vg0/lv0   /mnt/snap     挂载

取消原来所有的挂载才能还原快照。
lvconvert --merge /dev/vg0/lv0-snapshot     还原原来的系统,还原原来的所有状态。

lvremove  /dev/vg0/lv0-snapshot    删除快照,删除之前要先取消所有挂载。


RAID  如果原来磁盘坏了,更改磁盘之后要同步这个RAID     resize2fs /dev/md0    这个命令只能应用于ext系列。
xfs系列要用   xfs_growfs  /dev/md0

posted on 2017-12-12 08:35  看!!灰机  阅读(759)  评论(0编辑  收藏  举报