system2之:3-磁盘管理

来源:互联网 发布:珍玛奇和梁家辉 知乎 编辑:程序博客网 时间:2024/05/16 19:59
磁盘管理

磁盘:靠磁性介质来存储

盘和硬盘的关系??

硬盘属于磁盘,常用的硬盘都是磁盘


存储设备
    1.磁盘
    2.u盘(哈尔滨一个公司:朗科 发明的)
    3.磁带
    4.光盘
    5.ssd(固态硬盘)(Solid State Disk)

能存数据的设备,简称存储设备
传统:磁盘面,电机,机械转动
固态:flash,半导体与集成电路

硬盘品牌:
        富士通
        seagate 希捷
        western digital 西部数据(wd)
        三星
        东芝(toshiba)
        易拓
        日立

希捷Barracuda 1TB 7200转 64MB 单碟(ST1000DM003)
    所属:
    希捷 Barracuda 7200转系列
    硬盘容量:1000GB
    适用类型:台式机
    接口类型:SATA3.0(数字越大越好
    转速:7200rpm
    缓存:64MB
    接口速率:6Gb/秒--》6/8 GB/秒    i/o
    硬盘尺寸:3.5英寸

    
磁盘的常用接口类型
          IDE    现在很少用了,已经淘汰了,速度很慢
          SCSI   
          光纤通道(Fibre Channel)        ---》简称FC     
          SATA     串口 现在是SATA3.0的   ---》比较常见(配电脑都是这种)
          usb    usb3.0 比 usb2.0快些
          SAS      (scsi和sata的混合技术)


IDE 接口其实就是ata:Advanced Technology Attachment
ATA技术是一个关于IDE(Integrated Device Electronics)的技术规范族

现在计算机基本上都是SATA:Serial Advanced Technology Attachment(串行高级技术附件)

scsi:small computer system interface

数据库服务器为了提高性能(i/o)
           固态 硬盘SSD---》读写速度快(但是价格贵)
          装系统也愿意使用固态硬盘(速度快)

服务器:
宝德:深圳
华为:深圳
联想:北京,纽约
华硕:台湾
NEC:日本
富士通:日本
戴尔DELL:厦门

磁盘的物理结构:
          磁道(track)  63个
          扇区(sector)  512字节
          柱面(cylinder)又叫磁柱,为了读取速度更高。磁头不用里外移动
          磁头(head)用来定位的,每一面都有一个磁头
          硬盘的最小存储单元就是扇区。  
  


15000转/分
    硬盘容量:600GB
    接口类型:SAS2
    转速:15000转/分
    缓存:16MB
    接口速率:6Gb/s

    平均寻道时间:3.4/3.9ms
    工作功耗:16.31W
    平均无故障时间:160万小时
    盘体尺寸:3.5英寸
    盘片数量:4


平均访问时间=平均寻道时+平均等待时间(转速有关系)  固态硬盘没有等待时间,所以很快

慢--》快
硬盘---》内存---》cpu

缓存的作用是:加快访问速度,很多硬件都有缓存        越大缓存的东西越多,缓存造价昂贵


#setup
#/etc/init.d/network  restart
#ifup eth0

#fdisk -l

Units = cylinders of 16065 * 512 = 8225280 bytes
一个柱面的大小=磁头数*扇区数*扇区的大小(512字节)

管理磁盘的分区:

概念:
1.主分区可以引导操作系统
2.基本磁盘上可以建立一到四个主分区 主分区数目在MBR中记录主分区数目在MBR(main boot record)中记录:cpu和硬盘接头的地方 0面 0磁道,1扇区,512

3.磁盘分区需要超过4个时
可将剩余空间作为1个扩展分区 (最多一个扩展分区)
扩展分区会占用一个主分区位置

安装系统时候分区,系统会做一些调整,创建第四个主分区的时候就会变为扩展分区,但是自己在终端创建分区时,最大可创建4个主分区。要区别这种特性

4.扩展分区不能直接存储文件不能格式化
但可以通过划分成逻辑分区来存储文件 1个扩展分区可以划分成多个逻辑分区


常见的分区方式:
Screenshot.png


MBR和GPT的区别:

http://dngood.blog.51cto.com/446195/647702/

Screenshot-1.png


Screenshot-3.png



Screenshot-2.png

[root@host ~]# fdisk  -l   区查看分

 fdisk - Partition table manipulator for Linux 分区表操纵者for linux

fdisk.png
最多建四个主分区,要建扩展分区时候,前面只能最多三个主分区

划分扩展分区,若前面已经有三个主分区,则把余下的空间默认全为扩展分区,否则浪费掉了。

Screenshot-3.png
在fdisk /dev/sda 后  L命令显示

编号:
1-4主分区使用不用也不会给逻辑分区用
逻辑分区的编号从5开始(大于等于5)


不管你前面建立的是几个主分区,后面逻辑分区都是默认从第五个开始,实验已经证明。
    
问题:创建分区后不能格式化,报错??
图1:
1.png
之前做实验影响了,换了个新的虚拟磁盘就可以了。


创建分区---格式化---挂载使用

1.创建分区

[root@localhost ~]# fdisk -l  查看磁盘的分区情况
[root@localhost ~]# fdisk  /dev/sdb
Command (m for help): m     获得帮助,查看具体可以使用那些命令
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
Command (m for help): n  新建分区
Command action
   e   extended
   p   primary partition (1-4)
p      主分区
Partition number (1-4): 1    主分区的编号
First cylinder (1-10443, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-10443, default 10443): +10G   #指定分区的大小
Command (m for help): p  输出

Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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: 0x38913320

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1306    10490413+  83  Linux

Command (m for help): w      退出并且保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


2.格式化

[root@localhost ~]# mkfs.ext4   /dev/sdb1  格式化sdb1这个分区为ext4文件系统
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622603 blocks
131130 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]#

3.新建挂载目录

mkdir  /music 新建挂载目录

4.挂载使用
mount /dev/sdb1  /music  挂载使用新的分区

5.复制些文件过去,测试
cd /music        

挂载点最大只能存储分区大小的文件,满了之后就不能存储了,可以用dd if=/dev/zero  of=/music bs=10G count=1实验,看填满之后再创建文件能否成功,自己尝试了之后,vim 一个文件,发现保存的时候无法执行,提示图:
图2
2.png



p命令查看分区

  partprobe - inform the OS of partition table changes
  kpartx



练习:
    新建一个分区在/dev/sdb上,分区类型为主分区,大小20G 格式化为ext4文件系统,挂载到/movie
    从10.0.0.253的mplayer目录下载电影《西游降魔篇》存放到/movie目录下


在一个磁盘里新建两个主分区,要格式化第二个主分区的时候,可能不能正常格式化,这时候先看提示的命令能否解决,不行的话则重启后再格式化

linux操作系统的诞生,发展和成长过程始终依赖着以下 5个重要支柱:
unix操作系统
MINIX操作系统
GNU计划
Internet网络
posix标准(Portable Operating System Interface of Unix)


[root@station6 tan_shell]# mkdir dir{1..5}
[root@station6 tan_shell]# ls
4913  dir1  dir3  dir5      myshell_1.sh  vnc.sh
5036  dir2  dir4  first.sh  myshell.sh
[root@station6 tan_shell]#


[root@station6 tan_shell]# df -Th |grep "/$"
/dev/sda2     ext4    241G   38G  191G  17%   /
[root@station6 tan_shell]#

[root@station6 tan_shell]# df -Th |grep "/$"|awk '{print $4}' 抽取第四列
38G
[root@station6 tan_shell]# df -Th |grep "/$"|awk '{print $4}'|tr -d "G"  去除G
38

[root@station6 tan_shell]# b=`df -Th |grep "/$"|awk '{print $4}'|tr -d "G"`
[root@station6 tan_shell]# echo $b
38
[root@station6 tan_shell]#


[root@station6 tan_shell]# chmod +x vnc.sh
[root@station6 tan_shell]# ./vnc.sh   //加可执行权限,则可以直接执行



MBR  

MBR是什么??
不属于任何一个分区,占用一个扇区,大小512
Master Boot Record:主引导记录
硬盘的0柱面、0磁头、1扇区称为主引导扇区

Screenshot-4.png
硬盘分区最多四个

GRUB

GNU GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,
并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

GRUB装在MBR 上

什么时候会出现grub>???

[root@station6 ~]# rpm -ql grub  |grep "etc"  //找不到
[root@station6 ~]# rpm -qf /etc/grub.conf   //不属于任何软件包,安装系统的时候自动安装了
file /etc/grub.conf is not owned by any package
[root@station6 ~]# ll /etc/grub.conf   //是链接
lrwxrwxrwx. 1 root root 22 3月  16 04:20 /etc/grub.conf -> ../boot/grub/grub.conf
[root@station6 ~]# rpm -qf  ../boot/grub/grub.conf
file /boot/grub/grub.conf is not owned by any package
[root@station6 ~]#
 
[root@station6 boot]# vim /etc/grub.conf


GRUB_screenshot.png


grub.png


Screenshot.png

Screenshot-1.png

boot loader 就是一个grub程序

/boot 是内核所在的那个分区,不建议把boot loader 安装到该分区



Screenshot-2.png

dd命令
功能:从指定文件中抽取指定长度的数据
格式:dd if=输入文件 of=输出文件 bs=单位大小 count=数目

备份MBR
dd if=/dev/sda of=mba.bak bs=512 count=1

还原MBR
dd if=mbr.bak of=/dev/sda bs=512 count=1

创建10M的文件
dd if=/dev/zero of=test  bs=1M count=10

使用hexdump命令以16进制加ASCII形式显示mba.bak里的内容
 hexdump -C  mba.bak

模拟MBR破坏实验
dd if=/dev/zero of=/dev/sda bs=512 count=1  破坏512字节大小的空间(即MBR头部被破坏,但是数据不被破坏)


查看分区信息命令
fdisk、dumep2fs、parted、partprobe

fdisk命令建立分区
用途:在交互式的操作环境中管理磁盘分区
格式:fdisk  [磁盘设备]

fdisk -l

partprobe命令
格式:partprobe
修改磁盘分区后不用重启,使用partprobe更新磁盘分区的变化
是必须的,分完区后一定要输入这条命令。跟分区完退出命令w一样的效果

[root@station6 boot]# fdisk /dev/sda   进入分区
[root@station6 boot]# fdisk -l   显示系统分区情况


dumpe2fs命令:查看ext2和ext3文件系统信息,查看swap分区的时候会报错(用的少)
格式:dumpe2fs 分区设备

parted命令(一般建议不用,用fdisk)
格式:parted 磁盘或分区
[root@station6 boot]# parted /dev/sda print
Model: ATA WDC WD5000AAKX-0 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size    Type      File system     标志
 1    1049kB  211MB  210MB   primary   ext4            启动
 2      211MB   262GB  262GB   primary   ext4
 3      262GB   367GB  105GB   primary   ext4
 4      367GB   500GB  133GB   extended
 5      367GB   388GB  21.0GB  logical   ext4
 6      388GB   392GB  4295MB  logical   linux-swap(v1)

[root@station6 boot]#



Screenshot-3.png

MBR
mbr
1 2 3
/dev/sda1 /boot
/dev/sda2 swap
/dev/sda3 /

mbr
512
446 64 2   其中64字节中的信息
动了这512字节则会出问题

Linux常用分区ID查看
fdisk /dev/sda  进入磁盘
然后命令l



备份mbr
    原则:最好是备份后将文件拷贝到其他的电脑
[root@lichao520 music]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             18121032   3038220  14162288  18% /
tmpfs                   189948       264    189684   1% /dev/shm
/dev/sda1               495844     35002    435242   8% /boot
/dev/sr0               3027366   3027366         0 100% /media/RHEL_6.3 i386 Disc 1
/dev/sdb5              2071384     68640   1897520   4% /music
[root@lichao520 music]#
备份到本机的另外一块磁盘里
[root@lichao520 music]# dd if=/dev/sda  of=/music/sda-mbr.bak bs=512 count=1
[root@lichao520 music]# pwd
/music
[root@lichao520 music]# ls
a  bc  lost+found  passwd  sda-mbr.bak
备份到其他的机器
[root@lichao520 music]# scp sda-mbr.bak 10.0.0.253:/root/
welcome teacher's computer
root@10.0.0.253's password:
sda-mbr.bak                          100%  512     0.5KB/s   00:00    
[root@lichao520 music]#
[root@lichao520 music]# hexdump -C sda-mbr.bak  查看备份mbr里的内容,以16进制和asc字母显示
==
破坏mbr

[root@lichao520 music]# dd if=/dev/zero  of=/dev/sda bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000237891 s, 2.2 MB/s
[root@lichao520 music]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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


进入营救模式后的操作:

#mkdir bak
#cp /dev/sdb5 /bak  备份文件复制到/bak
营救模式下的图:
Screenshot-5.png

营救模式
    1.可以放入光盘到光驱,从光盘启动。或者从网络引导进入营救模式
    2.从备份磁盘里还原mbr,或者从网络的备份中还原mbr



GPT
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。
它是EFI(可扩展固件接口标准)的一部分,用来替代BIOS中的主引导记录分区表。但因为MBR分区表不支持容量大于2.2TB(2.2 × 1012字节)的分区,所以也有一些BIOS系统为了支持大容量硬盘而用GPT分区表取代MBR分区表。

在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
GPT磁盘分区样式支持最大卷为18 EB(Exabytes)并且每磁盘的分区数没有上限,只受到操作系统限制(由于分区表本身需要占用一定空间,最初规划硬盘分区时,留给分区表的空间决定了最多可以有多少个分区,IA-64版Windows限制最多有128个分区    

(parted) mkpart movie  20001  60000
                                                                       Warning: WARNING: the kernel failed to re-read the partition table on
/dev/sdc (Device or resource busy).  As a result, it may not reflect
all of your changes until after reboot.
                                                                       (parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2190GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size     File system  Name   Flags
 1      1049kB  3000MB  2999MB   ext4         music
 2      3001MB  10.0GB  6999MB   ext4         m
 3      10.0GB  20.0GB  10000MB               u
 4      20.0GB  60.0GB  40.0GB                movie

                                                                       (parted) quit
[root@lichao520 ~]# ls /dev/sdc*
/dev/sdc  /dev/sdc1  /dev/sdc2
[root@lichao520 ~]# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda3     ext4     18G  2.9G   14G  18% /
tmpfs        tmpfs    186M  260K  186M   1% /dev/shm
/dev/sda1     ext4    485M   35M  426M   8% /boot
/dev/sr0   iso9660    2.9G  2.9G     0 100% /media/RHEL_6.3 i386 Disc 1
/dev/sdc2     ext4    6.5G  143M  6.0G   3% /m
[root@lichao520 ~]# umount /m  卸载
[root@lichao520 ~]# partprobe /dev/sdc  重新读取分区表,生存设备文件
[root@lichao520 ~]# ls /dev/sdc*
/dev/sdc  /dev/sdc1  /dev/sdc2  /dev/sdc3  /dev/sdc4
[root@lichao520 ~]#



GPT学习链接推荐:http://dngood.blog.51cto.com/446195/647702/

MBR 与 GPT:

MBR 与 GPT,都是分区格式,其中MBR最大分区小于等于2TB,而GPT分区没有2TB的限制,理论最大分区18 EB!

现在我们知道了要创建一个大于2TB的分区,就不能使用MBR 格式的分区表了,而要使用GPT格式的分区表,我们最常用的fdisk 分区工具就爱莫能助了,
需要使用linux 下的Parted分区工具!

parted工具比fdisk工具分区危险,因为分区的时候直接生效,不能撤销。fdisk可以退出不保存。



原创粉丝点击