重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章介绍几种常用的磁盘阵列技术(Raid0、Raid1、Raid4、Raid5、Raid10、Raid01),演示如何在CentOS7环境下使用mdadm命令去创建和维护磁盘阵列;RAID又称“廉价磁盘冗余阵列”,可以使用硬件和软件两种方式来实现,硬件RAID可以参考购买硬件时附带的参考手册,设置方法与软件RAID有差异;现如今软件RAID大多用作研究和熟悉RAID的工作方式。
创新互联建站是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十余年时间我们累计服务了上千家以及全国政企客户,如房屋鉴定等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致夸奖。
Raid有"廉价磁盘冗余阵列"的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的;也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘可以通过冗余数据计算出损坏磁盘的数据,这样就提高了数据储存的安全性。
Raid0数据储存方法如下(假设有两块硬盘D1、D2):
特点:数据被并行写入每个磁盘,每个磁盘都保存了完整数据的一部分,读取也采用并行方式,磁盘数量越多,读取和写入速度越快。因为没有冗余,一个硬盘坏掉全部数据丢失。至少两块硬盘才能组成Raid0阵列。
容量:所有硬盘之和。
Raid1数据储存方法如下(假设有两块硬盘D1、D2):
特点:有数据冗余,可靠性强,D1、D2被写入相同的数据,其中D2可以作为D1的完整备份。读取时,从两块硬盘上并行读取,写入慢,读取快。任何一块硬盘坏掉不会丢失数据,至少两块硬盘并且两块硬盘大小相等才能组成Raid1阵列。
容量:所有硬盘容量之和的一半(一半写数据,一半用来做备份)。
Raid4数据储存方法如下(假设有三块硬盘D1、D2、D3):
特点:有数据冗余校验,可靠性强。其中任何一块硬盘坏掉都不会引起数据丢失,D1丢失时,D3根据校验和以及D2的数据进行逆运算,计算出D1的数据。但当写入大量数据时校验盘D3会是一个数据瓶颈,导致写入慢。只有当两块磁盘同时丢失时,数据才无法恢复。至少三块硬盘并且磁盘大小应该相等才能组成Raid4阵列(不常用)。
容量:所有硬盘容量之和减去其中一块硬盘的容量。
Raid5数据储存方法如下(假设有三块硬盘D1、D2、D3):
特点:采用奇偶校验,可靠性强,磁盘校验和被散列到不同的磁盘里面,增加了读写速率。只有当两块磁盘同时丢失时,数据才无法恢复,至少三块硬盘并且硬盘大小应该相等才能组成Raid5阵列。
容量:所有硬盘容量之和减去其中一块硬盘的容量,被减去的容量被分配到三块硬盘的不同区域用来存放数据校验信息。
Raid10(Raid1+Raid0)是现在比较常用的一种磁盘阵列级别,它的容错好,读写数据效率较高,但经费相对也较高。
Raid10数据储存方法如下(假设有四块硬盘D1、D2、D3、D4):
特点:备份和并发式存取数据,可靠性强。D1、D2组成一个阵列Raid1,其中D1是数据盘,D2是备份盘;D3、D4也组成一个Raid1,其中D3是数据盘,D4是备份盘;在这个基础上将D1、D2作为一个整体,将D3、D4也作为一个整体,这两个整体之间再组成一个Raid0阵列。这样不仅仅读取数据会非常快,并发写入的速度也会随着磁盘的增多而变快。至少四块硬盘并且每块硬盘大小应该相等才能组成Raid10阵列。
容量:所有硬盘容量之和的一半(一半写数据,一半用来备份数据)。
Raid01数据储存方法如下(假设有四块硬盘D1、D2、D3、D4):
特点:D1、D2组成一个阵列Raid0,D3、D4也组成一个阵列Raid0,D1、D2和D3、D4再组成一个Raid1。D1和D2作为数据盘阵列,D3和D4作为数据备份阵列,这种方式并不常用,至少四块硬盘并且每块硬盘大小应该相等才能组成Raid01阵列。
容量:所有硬盘容量之和的一半。
这一部分通过Linux上的mdadm命令来实现Raid10磁盘阵列。
实验环境为一台安装了5块硬盘的计算机,操作系统是CentOS7,除系统所在硬盘(/dev/sda)外,其余四块20G的硬盘盘符分别为(/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde);
主要用到的命令:mdadm;
CentOS7中mdadm默认已安装,如果没有安装,可以使用yum在线安装,如下:
到这里,实验的准备工作完成。
新创建的磁盘阵列默认是不能开机自启动的,需要手动创建一个配置文件,让系统在启动的时候自动启动Raid(经过测试,CentOS7并不需要创建这个配置文件,如果重启后磁盘阵列没有随机启动,请使用下面的方法配置一次):
可以在创建RAID的时候指定有几块冗余磁盘,当工作磁盘出现故障的时候,冗余磁盘自动启动,顶替出现故障的磁盘继续工作,请看下面的实例:
下面手动将一块磁盘标记为故障,看看冗余盘是否起作用:
假如/dev/sdc经过测试后发现没有问题,想要重新加入md0使用,可以在系统重启后,使用"mdadm /dev/md0 -a /dev/sdc"命令将它重新(添加)启用。
如果以后,想要加入一块新硬盘到这个raid10里作为备份盘,这块新硬盘需要和其他硬盘(或分区)保持相同的大小,然后使用下面的命令添加:
要想彻底清除RAID以及数据,请使用下面的方法:
Linux安装基本命令大全
Linux常用命令,你还能记得多少呢?下文是我为大家准备的Linux常用命令,一起来看看吧!
安装升级
查看软件xxx安装内容
dpkg -L xxx
查找软件库中的软件
apt-cache search 正则表达式
或
aptitude search 软件包
显示系统安装包的统计信息
apt-cache stats
显示系统全部可用包的名称
apt-cache pkgnames
显示包的信息
apt-cache show k3b
查找文件属于哪个包
dpkg -S filename
apt-file search filename
查看已经安装了哪些包
dpkg -l
也可用
dpkg -l | less
翻页查看
查询软件xxx依赖哪些包
apt-cache depends xxx
查询软件xxx被哪些包依赖
apt-cache rdepends xxx
增加一个光盘源
sudo apt-cdrom add
系统更新
sudo apt-get update (这一步更新包列表)
sudo apt-get dist-upgrade (这一步安装所有可用更新)
或者
sudo apt-get upgrade (这一步安装应用程序更新,不安装新内核等)
清除所有已删除包的残馀配置文件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。
----------------------------------------------------------
dpkg: --purge needs at least one package name argument
Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].
Options marked [*] produce a lot of output - pipe it through `less' or `more' !
----------------------------------------------------------
编译时缺少h文件的自动处理
sudo auto-apt run ./configure
查看安装软件时下载包的临时存放目录
ls /var/cache/apt/archives
备份当前系统安装的所有包的列表
dpkg --get-selections | grep -v deinstall ~/somefile
从上面备份的安装包的列表文件恢复所有包
dpkg --set-selections ~/somefile
sudo dselect
清理旧版本的软件缓存
sudo apt-get autoclean
清理所有软件缓存
sudo apt-get clean
删除系统不再使用的孤立软件
sudo apt-get autoremove
如果使用
sudo apt-get autoremove --purge
的话会把这些孤立软件的残留配置文件也一并移除
查看包在服务器上面的地址
apt-get -qq --print-uris download 软件包名称 | cut -d\' -f2
彻底删除Gnome
sudo apt-get --purge remove liborbit2
彻底删除KDE
sudo apt-get --purge remove libqt3-mt libqtcore4
一键安装 LAMP 服务
sudo tasksel install lamp-server
删除旧内核
sudo aptitude purge ~ilinux-image-.*\(\!\(`uname -r`\|generic-.*\)\)
导入ppa源的'key值
#W: GPG签名验证错误: jaunty Release: 由于没有公钥,下列签名无法进行验证: NO_PUBKEY 5126890CDCC7AFE0
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5126890CDCC7AFE0 #5126890CDCC7AFE0替换为你需要导入的Key值
增加 add-apt-repository 命令
sudo apt-get install software-properties-common
增加一个ppa源
sudo add-apt-repository ppa:user/ppa-name
#使用 ppa 的地址替换 ppa:user/ppa-name
添加163镜像源
sudo add-apt-repository "deb `lsb_release -cs` main restricted universe multiverse"
sudo add-apt-repository "deb `lsb_release -cs`-updates main restricted universe multiverse"
sudo add-apt-repository "deb `lsb_release -cs`-security main restricted universe multiverse"
系统升级
1 这里指的是版本间的升级,例如 9.04=10.04。
2 使用该升级方式通常需要使用 backports 源。
sudo apt-get update
sudo apt-get install update-manager-core
sudo do-release-upgrade
系统
查看内核
uname -a
查看系统是32位还是64位
#查看long的位数,返回32或64
getconf LONG_BIT
#查看文件信息,包含32-bit就是32位,包含64-bit就是64位
file /sbin/init
或者使用
uname -m
查看Ubuntu版本
lsb_release -a
或 cat /etc/lsb-release
查看内核加载的模块
lsmod
查看PCI设备
lspci
查看USB设备
lsusb
#加参数 -v 可以显示USB设备的描述表(descriptors)
lsusb -v
查看网卡状态
sudo apt-get install ethtool
sudo ethtool eth0
激活网卡的 Wake-on-LAN
sudo apt-get install wakeonlan
或 sudo ethtool -s eth0 wol g
查看CPU信息
cat /proc/cpuinfo
显示当前硬件信息
sudo lshw
查看内存型号
sudo dmidecode -t memory
获取CPU序列号或者主板序列号
#CPU ID
sudo dmidecode -t 4 | grep ID
#Serial Number
sudo dmidecode | grep Serial
#CPU
sudo dmidecode -t 4
#BIOS
sudo dmidecode -t 0
#主板:
sudo dmidecode -t 2
#OEM:
sudo dmidecode -t 11
显示当前内存大小
free -m |grep "Mem" | awk '{print $2}'
查看硬盘温度
sudo apt-get install hddtemp
sudo hddtemp /dev/sda
显示系统运行时间
uptime
查看系统限制
ulimit -a
查看内核限制
ipcs -l
查看当前屏幕分辨率
xrandr
硬盘
查看块设备
lsblk
查看硬盘的分区
sudo fdisk -l
硬盘分区
#危险!小心操作。
sudo fdisk /dev/sda
硬盘格式化
#危险!将第一个分区格式化为 ext3 分区, mkfs.reiserfs mkfs.xfs mkfs.vfat
sudo mkfs.ext3 /dev/sda1
硬盘检查
#危险!检查第一个分区,请不要检查已经挂载的分区,否则容易丢失和损坏数据
sudo fsck /dev/sda1
硬盘坏道检测
sudo badblocks -s -v -c 32 /dev/sdb
#得到坏的块后,使用分区工具隔离坏道。
分区挂载
sudo mount -t 文件系统类型 设备路经 访问路经
#常用文件类型如下: iso9660 光驱文件系统, vfat fat/fat32分区, ntfs ntfs分区, smbfs windows网络共享目录, reiserfs、ext3、xfs Linux分区
#如果中文名无法显示尝试在最後增加 -o nls=utf8 或 -o iocharset=utf8
#如果需要挂载後,普通用户也可以使用,在 -o 的参数後面增加 ,umask=022 如:-o nls=utf8,umask=022
分区卸载
sudo umount 目录名或设备名
只读挂载ntfs分区
sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c
可写挂载ntfs分区
sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c
挂载fat32分区
sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c
挂载共享文件
sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share
挂载ISO文件
sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso
查看IDE硬盘信息
sudo hdparm -i /dev/sda
查看软raid阵列信息
cat /proc/mdstat
参看硬raid阵列信息
dmesg |grep -i raid
cat /proc/scsi/scsi
查看SATA硬盘信息
sudo hdparm -I /dev/sda
或
sudo apt-get install blktool
sudo blktool /dev/sda id
查看硬盘剩余空间
df
df --help 显示帮助
查看目录占用空间
du -hs 目录名
闪盘没法卸载
sync
fuser -km /media/闪盘卷标
使用文件来增加交换空间
#创建一个512M的交换文件 /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=512
sudo mkswap /swapfile
sudo swapon /swapfile
#sudo vim /etc/fstab #加到fstab文件中让系统引导时自动启动
/swapfile swap swap defaults 0 0
查看硬盘当前读写情况
# 首先安装 sysstat 包
sudo apt-get install sysstat
#每2秒刷新一次
sudo iostat -x 2
测试硬盘的实际写入速度
dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
进程
查看当前的内存使用情况
free
连续监视内存使用情况
watch -d free
# 使用 Ctrl + c 退出
动态显示进程执行情况
top
top指令运行时输入H或?打开帮助窗口,输入Q退出指令。
查看当前有哪些进程
ps -AFL
查看进程的启动时间
ps -A -opid,stime,etime,args
查看目前登入用户运行的程序
w
查看当前用户程序实际内存占用,并排序
ps -u $USER -o pid,rss,cmd --sort -rss
统计程序的内存耗用
ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr
按内存从大到小排列进程
ps -eo "%C : %p : %z : %a"|sort -k5 -nr
列出前十个最耗内存的进程
ps aux | sort -nk +4 | tail
按cpu利用率从大到小排列进程
ps -eo "%C : %p : %z : %a"|sort -nr
ps aux --sort -pcpu |head -n 20
查看当前进程树
pstree
中止一个进程
kill 进程号(就是ps -A中的第一列的数字)
或者 killall 进程名
强制中止一个进程(在上面进程中止不成功的时候使用)
kill -9 进程号
或者 killall -9 进程名
图形方式中止一个程序
xkill 出现骷髅标志的鼠标,点击需要中止的程序即可
查看进程打开的文件
lsof -p 进程的pid
显示开启文件abc.txt的进程
lsof abc.txt
显示22端口现在运行什么程序
lsof -i :22
显示nsd进程现在打开的文件
lsof -c nsd
在後台运行程序,退出登录後,并不结束程序
nohup 程序
#查看中间运行情况 tail nohup
在后台运行交互式程序,退出登录后,并不结束程序
sudo apt-get install screen
screen vim a.txt
#直接退出后使用
screen -ls # 2208pxs-0.ubuntu (Detached)
screen -r 1656 #恢复
#热键,同时按下Ctrl和a键结束后,再按下功能键
C-a ? #显示所有键绑定信息
C-a w #显示所有窗口列表
C-a C-a #切换到之前显示的窗口
C-a c #创建一个新的运行shell的窗口并切换到该窗口
C-a n #切换到下一个窗口
C-a p #切换到前一个窗口(与C-a n相对)
C-a 0..9 #切换到窗口0..9
C-a a #发送 C-a到当前窗口
C-a d #暂时断开screen会话
C-a k #杀掉当前窗口
在后台运行交互式程序,退出登录后,并不结束程序
tmux 进入后再运行其它命令
tmux attach #恢复
#热键,同时按下Ctrl和b键结束后,再按下功能键
C-b c #创建一个新的运行shell的窗口并切换到该窗口
C-b n #切换到下一个窗口
C-b p #切换到前一个窗口(与C-a n相对)
C-b 0..9 #切换到窗口0..9
C-b d #暂时断开会话
C-b #杀掉当前窗口
详细显示程序的运行信息
strace -f -F -o outfile
增加系统最大打开文件个数
#ulimit -SHn
sudo vim /etc/security/limits.conf
文件尾追加
* hard nofile 4096
* soft nofile 4096
sudo vim /etc/pam.d/su
将 pam_limits.so 这一行注释去掉
重起系统
清除僵尸进程
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | xargs sudo kill -9
将大于120M内存的php-cgi都杀掉
ps -eo pid,fname,rss|grep php-cgi|grep -v grep|awk '{if($3=120000) print $1}' | xargs sudo kill -9
Linux系统中如何限制用户进程CPU占用率
renice +10 `ps aux | awk '{ if ($3 0.8 id -u $1 500) print $2}'`
#或直接编辑/etc/security/limits.conf文件。 ;
我最近新配了台电脑,准备装个双系统,windows用来打游戏,linux用来写代码,是不是很完美!然后专门买了两块1T硬盘,想用来搭建RAID0,使用并行I/O来提升电脑的性能。
我在选主板的时候刻意选了支持RAID的主板,msi B85-G43 GAMING,能用msi的super raid技术,但是买来之后发现,这东西的驱动是exe程序,呵呵,主板支持的只是个伪raid,只能在windows下使用,想了想还是决定放弃在windows中使用raid,毕竟只是拿来日常休闲的系统,linux上得追求性能,所以在linux上使用软RAID来实现。那么这时候就有读者问了,如何在RAID软磁盘阵列上搭建linux系统!这里就由我给大家 说说 如何搭建 方法 吧:
首先在第一块磁盘上装上windows 8,给100G的主分区作为C盘,硬盘其余部分先不动,等装好系统再规划硬盘。
系统装好后,使用MiniTool Partition Wizard Home Edition 7.0来规划硬盘。直接上图,后面解释。
总共1.86T,
windows:
100G系统分区,主分区
231.5G游戏安装
200G下载文件
200G下载游戏
150G安装软件
150G工具
共用硬盘:
100G文档
331.5G各种音乐,电影,图片
linux:使用最新的fedora20
300M boot分区,主分区,不使用raid,因为grub2目测不支持raid,所以将boot单独分出来
300M boot备份分区,主分区,备份一个boot分区,出现意外时可以使用这个分区引导
3.6G swap分区,swap0 + swap1,各1.8G,分布在两个硬盘上
20G 挂载到/,sys0 + sys1,各10G
50G /usr, usr0 + usr1,各25G
25G /home,home0 + home1,各12.5G
50G /var, var0 + var1,各25G
20G /opt, opt0 + opt1,各10G
230.8G /data, data0 + data1,各115.4G,用于存放各种下载的软件,压缩包,虚拟机
至此,分区方案制定完成,MiniTool Partition Wizard将windows分区分好,并把linux的400G按照以上的分区计划格式话成ext4文件系统,接下来就开始用live cd安装系统吧~
在U盘上刻fedora live cd安装系统
由于fedora的安装程序在磁盘分区时并没有选项直接选择RAID,所以我使用console来做RAID。
这里用到的工具是mdadm。
首先用su root切换到root用户,并用 fdisk -l 来查看目前的分区情况。
/dev/sda
/dev/sdb
可以观察到现在/dev/sda3和/dev/sdb1分别为boot 和 bootbak,这两个分区不用管
/dev/sda5-11分别和/dev/sdb5-11大小相同,所以这一部分就是我们用来做RAID的硬盘
制作swap分区
$ mdadm -Cv /dev/md0 -l0 -n2 /dev/sd{a,b}5$ mkfs.ext4 /dev/md0 这一步得做,不然在安装程序中无法看到md0这块硬盘,具体原因不明命令也可以写成 $ mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sd{a,b}5 $ mkfs.ext4 /dev/md0
按照上面的写法,将其余分区也做成RAID分区,重启一次系统,再次进入live cd安装界面,在硬盘分区时就可以看到这几块RAID硬盘分区了。
选择某一个分区,在右边详细信息中填上挂载点,点击重新分区,选择ext4或者swap,然后点击更新设置。完成之后点击开始安装系统,一切就妥妥的了。
系统安装完后,用df -h可以查看到
使用 cat /proc/mdstat 来查看RAID分区的运行状态
最后,来测试一下RAID0的速度
首先安装 hdparm 测试工具,yum install hdparm.x86_64
使用hdparm -tT 设备名称 来测试,分别测试/dev/sda和/dev/md0,测试结果如下
RAID0的速度提升接近两倍,很不错的成绩~~觉得本文不错记得在 文章 下方给我点个赞哦。
安装mdadm
我们将使用mdadm(简称多盘管理)工具创建、组装、管理和监控软件RAID-1。在诸如Fedora、CentOS、RHEL或者Arch Linux 的发行版中,mdadm是默认安装的。在基于Debian的发行版中,可以使用aptitude 或者 apt-get 安装mdadm。
Fedora, CentOS 或 RHEL
由于adadm是预装的,所以我们只需要开启RAID守护服务,并将其配置成开机启动即可:
Shell
1
2
# systemctl start mdmonitor
# systemctl enable mdmonitor
对于CentOS/RHEL 6系统,使用以下命令:
Shell
1
2
# service mdmonitor start
# chkconfig mdmonitor on
Debian, Ubuntu 或 Linux Mint
在Debian或类Debian系统中,mdadm可以使用 aptitude 或者 apt-get 安装:
Shell
1
# aptitude install mdadm
Ubuntu系统中,会要求配置Postfix MTA 以发送电子邮件通知。你可以跳过去。
Debian系统中,安装程序会显示以下解释信息,用来帮助我们去判断是否将根目录安装到RAID阵列中。下面的所有操作都有赖于这一步,所以应该仔细阅读他。
动手试吧,没有的话就找相关软件包安装\x0d\x0a\x0d\x0a一、df 命令;\x0d\x0a\x0d\x0adf 是来自于coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;\x0d\x0a\x0d\x0a举例:\x0d\x0a\x0d\x0a[root@localhost beinan]# df -lh\x0d\x0a\x0d\x0aFilesystem 容量 已用 可用 已用% 挂载点\x0d\x0a\x0d\x0a/dev/hda8 11G 6.0G 4.4G 58% /\x0d\x0a\x0d\x0a/dev/shm 236M 0 236M 0% /dev/shm\x0d\x0a\x0d\x0a/dev/sda1 56G 22G 35G 39% /mnt/sda1\x0d\x0a\x0d\x0a我们从中可以看到,系统安装在/dev/hda8 ;还有一个56G的磁盘分区/dev/sda1挂载在 /mnt/sda1中;\x0d\x0a\x0d\x0a其它的参数请参考 man df\x0d\x0a\x0d\x0a二、fdsik\x0d\x0a\x0d\x0afdisk 是一款强大的磁盘操作工具,来自util-linux软件包,我们在这里只说他如何查看磁盘分区表及分区结构;参数 -l ,通过-l 参数,能获得机器中所有的硬盘的分区情况;\x0d\x0a\x0d\x0a[root@localhost beinan]# fdisk -l\x0d\x0a\x0d\x0aDisk /dev/hda: 80.0 GB, 80026361856 bytes\x0d\x0a\x0d\x0a255 heads, 63 sectors/track, 9729 cylinders\x0d\x0a\x0d\x0aUnits = cylinders of 16065 * 512 = 8225280 bytes\x0d\x0a\x0d\x0aDevice Boot Start End Blocks Id System\x0d\x0a\x0d\x0a/dev/hda1 * 1 765 6144831 7 HPFS/NTFS\x0d\x0a\x0d\x0a/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)\x0d\x0a\x0d\x0a/dev/hda3 2806 7751 39728745 5 Extended\x0d\x0a\x0d\x0a/dev/hda5 2806 3825 8193118+ 83 Linux\x0d\x0a\x0d\x0a/dev/hda6 3826 5100 10241406 83 Linux\x0d\x0a\x0d\x0a/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris\x0d\x0a\x0d\x0a/dev/hda8 5199 6657 11719386 83 Linux\x0d\x0a\x0d\x0a/dev/hda9 6658 7751 8787523+ 83 Linux\x0d\x0a\x0d\x0a在上面Blocks中,表示的是分区的大小,Blocks的单位是byte ,我们可以换算成M,比如第一个分区/dev/hda1的大小如果换算成M,应该是6144831/1024=6000M,也就是6G左右,其实没有这么麻烦,粗略的看一下把小数点向前移动三位,就知道大约的体积有多大了;\x0d\x0a\x0d\x0aSystem 表示的文件系统,比如/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的文件系统;.\x0d\x0a\x0d\x0a在此例中,我们要特别注意的是/dev/hda3分区,这是扩展分区;他下面包含着逻辑分区,其实这个分区相当于一个容器;从属于她的有 hda5,hda6,hda7,hda8,hda9 ;\x0d\x0a\x0d\x0a我们还注意到一点,怎么没有hda4呢?为什么hda4没有包含在扩展分区?一个磁盘最多有四个主分区; hda1-4算都是主分区;hda4不可能包含在扩展分区里,另外扩展分区也算主分区;在本例中,没有hda4这个分区,当然我们可以把其中的一个分区设置为主分区,只是我当时分区的时候没有这么做而已;\x0d\x0a\x0d\x0a再仔细统计一下,我们看一看这个磁盘是不是还有空间?hda1+hda2+hda3=实际已经分区的体积,所以我们可以这样算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b),换算成M单位,小数点向前移三位,所以目前已经划分好的分区大约占用体积是62259.876(M),其实最精确的计算 62259876/1024=60800.67(M);而这个磁盘大小是80.0 GB (80026361856byte),其实实际大小也就是78150.744(M);通过我们一系列的计算,我们可以得出这个硬盘目前还有使用的空间;大约还有18G未分区的空间;\x0d\x0a\x0d\x0afdisk -l 能列出机器中所有磁盘的个数,也能列出所有磁盘分区情况;比如:\x0d\x0a\x0d\x0a[root@localhost beinan]# fdisk -l\x0d\x0a\x0d\x0aDisk /dev/hda: 80.0 GB, 80026361856 bytes\x0d\x0a\x0d\x0a255 heads, 63 sectors/track, 9729 cylinders\x0d\x0a\x0d\x0aUnits = cylinders of 16065 * 512 = 8225280 bytes\x0d\x0a\x0d\x0aDevice Boot Start End Blocks Id System\x0d\x0a\x0d\x0a/dev/hda1 * 1 765 6144831 7 HPFS/NTFS\x0d\x0a\x0d\x0a/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)\x0d\x0a\x0d\x0a/dev/hda3 2806 7751 39728745 5 Extended\x0d\x0a\x0d\x0a/dev/hda5 2806 3825 8193118+ 83 Linux\x0d\x0a\x0d\x0a/dev/hda6 3826 5100 10241406 83 Linux\x0d\x0a\x0d\x0a/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris\x0d\x0a\x0d\x0a/dev/hda8 5199 6657 11719386 83 Linux\x0d\x0a\x0d\x0a/dev/hda9 6658 7751 8787523+ 83 Linux\x0d\x0a\x0d\x0aDisk /dev/sda: 60.0 GB, 60011642880 bytes\x0d\x0a\x0d\x0a64 heads, 32 sectors/track, 57231 cylinders\x0d\x0a\x0d\x0aUnits = cylinders of 2048 * 512 = 1048576 bytes\x0d\x0a\x0d\x0aDevice Boot Start End Blocks Id System\x0d\x0a\x0d\x0a/dev/sda1 1 57231 58604528 83 Linux\x0d\x0a\x0d\x0a通过上面我们可以知道此机器有两块硬盘,我们也可以指定fdisk -l 来查看其中一个硬盘的分区情况;\x0d\x0a\x0d\x0a[root@localhost beinan]# fdisk -l /dev/sda\x0d\x0a\x0d\x0aDisk /dev/sda: 60.0 GB, 60011642880 bytes\x0d\x0a\x0d\x0a64 heads, 32 sectors/track, 57231 cylinders\x0d\x0a\x0d\x0aUnits = cylinders of 2048 * 512 = 1048576 bytes\x0d\x0a\x0d\x0aDevice Boot Start End Blocks Id System\x0d\x0a\x0d\x0a/dev/sda1 1 57231 58604528 83 Linux\x0d\x0a\x0d\x0a通过上面情况可以知道,在/dev/sda 这个磁盘中,只有一个分区;使用量差不多是百分百了;\x0d\x0a\x0d\x0a我们还可以来查看 /dev/hda的\x0d\x0a\x0d\x0a[root@localhost beinan]# fdisk -l /dev/hda\x0d\x0a\x0d\x0a自己试试看?\x0d\x0a\x0d\x0a三、cfdisk 来自于util-linux的软件包;\x0d\x0a\x0d\x0acfdisk 也是一款不错的分区工具;在有些发行版中,此工具已经从util-linux包中剔除;cfdisk 简单易用是他的特点;和DOS中的fdisk 相似;在本标题中,我们只来解说如何查看机器的中的磁盘分区状况及所用的文件系统等;\x0d\x0a\x0d\x0a查看磁盘分区的用法 cfdisk -Ps 磁盘设备名;\x0d\x0a\x0d\x0a比如\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk -Ps\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk -Ps /dev/hda\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk -Ps\x0d\x0a\x0d\x0aPartition Table for /dev/hda\x0d\x0a\x0d\x0aFirst Last\x0d\x0a\x0d\x0a# Type Sector Sector Offset Length Filesystem Type (ID) Flag\x0d\x0a\x0d\x0a-- ------- ----------- ----------- ------ ----------- -------------------- ----\x0d\x0a\x0d\x0a1 Primary 0 23438834 63 23438835 Linux (83) Boot\x0d\x0a\x0d\x0a2 Primary 23438835 156296384 0 132857550 Extended (05) None\x0d\x0a\x0d\x0a5 Logical 23438835 155268224 63 131829390 Linux (83) None\x0d\x0a\x0d\x0a6 Logical 155268225 156296384 63 1028160 Linux swap (82) None\x0d\x0a\x0d\x0a我们只用的参数 -Ps,就列出了磁盘的分区情况;目前在Slackware Debian Mandrake 等主流发行版中存在cfdisk ,而fedora 4.0把这个小工具剔除了;有点可惜;这是我在Slackware中操作的;\x0d\x0a\x0d\x0a如果您这样操作,就更直观了;\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk 磁盘设备名\x0d\x0a\x0d\x0a举例:\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk /dev/hda\x0d\x0a\x0d\x0a您所看到的是如下的模式:\x0d\x0a\x0d\x0acfdisk 2.12a\x0d\x0a\x0d\x0aDisk Drive: /dev/hda\x0d\x0a\x0d\x0aSize: 80026361856 bytes, 80.0 GB\x0d\x0a\x0d\x0aHeads: 255 Sectors per Track: 63 Cylinders: 9729\x0d\x0a\x0d\x0aName Flags Part Type FS Type [Label] Size (MB)\x0d\x0a\x0d\x0a-------------------------------------------------------------------------------------------\x0d\x0a\x0d\x0ahda1 Boot Primary Linux ReiserFS 12000.69\x0d\x0a\x0d\x0ahda5 Logical Linux ReiserFS 67496.65\x0d\x0a\x0d\x0ahda6 Logical Linux swap 526.42\x0d\x0a\x0d\x0a[Bootable] [ Delete ] [ Help ] [Maximize] [ Print ] [ Quit ]\x0d\x0a\x0d\x0a[ Type ] [ Units ] [ Write ]\x0d\x0a\x0d\x0aToggle bootable flag of the current partition\x0d\x0a\x0d\x0a您进入了cfdisk 的操作界面;用键盘移动指针到[Quit]就可以退出;\x0d\x0a\x0d\x0a四、parted 功能不错的分区工具;在Fedora 4.0中有带,可以自己安装上;在此主题中,我们只说如何查看磁盘的分区情况;\x0d\x0a\x0d\x0a调用方法简单,parted 默认是打开的设备是/dev/hda ,也可以自己指定;比如 parted /dev/hda 或/dev/sda 等;退出的方法是 quit\x0d\x0a\x0d\x0a[root@localhost beinan]# parted\x0d\x0a\x0d\x0a使用 /dev/hda\x0d\x0a\x0d\x0a(parted) p\x0d\x0a\x0d\x0a/dev/hda 的磁盘几何结构:0.000-76319.085 兆字节\x0d\x0a\x0d\x0a磁盘标签类型:msdos\x0d\x0a\x0d\x0aMinor 起始点 终止点 类型 文件系统 标志\x0d\x0a\x0d\x0a1 0.031 6000.842 主分区 ntfs 启动\x0d\x0a\x0d\x0a2 6000.842 22003.088 主分区 fat32 lba\x0d\x0a\x0d\x0a3 22003.088 60800.690 扩展分区\x0d\x0a\x0d\x0a5 22003.119 30004.211 逻辑分区 reiserfs\x0d\x0a\x0d\x0a6 30004.242 40005.615 逻辑分区 reiserfs\x0d\x0a\x0d\x0a7 40005.646 40774.350 逻辑分区 linux-swap\x0d\x0a\x0d\x0a8 40774.381 52219.094 逻辑分区 ext3\x0d\x0a\x0d\x0a9 52219.125 60800.690 逻辑分区 reiserfs\x0d\x0a\x0d\x0a我们在partd 的操作面上,用p就可以列出当前磁盘的分区情况,如果想要查看其它磁盘,可以用 select 功能,比如 select /dev/sda ;\x0d\x0a\x0d\x0a五、qtparted ,与parted 相关的软件还有qtparted ,也能查看到磁盘的结构和所用的文件系统,是图形化的;\x0d\x0a\x0d\x0a[beinan@localhost ~]# qtparted\x0d\x0a\x0d\x0a图形化的查看,一目了然;\x0d\x0a\x0d\x0a六、sfdisk 也是一个分区工具,功能也多多;我们在这里只说他的列磁盘分区情况的功能;\x0d\x0a\x0d\x0a[root@localhost beinan]# sfdisk -l\x0d\x0a\x0d\x0a自己看看吧;\x0d\x0a\x0d\x0asfdisk 有几个很有用的功能;有兴趣的弟兄不妨看看;\x0d\x0a\x0d\x0a七、partx 也简要的说一说,有些系统自带了这个工具,功能也简单,和fdisk 、parted、cfdisk 来说不值一提;不用也罢;\x0d\x0a\x0d\x0a用法: partx 设备名\x0d\x0a\x0d\x0a[root@localhost beinan]# partx /dev/hda\x0d\x0a\x0d\x0a# 1: 63- 12289724 ( 12289662 sectors, 6292 MB)\x0d\x0a\x0d\x0a# 2: 12289725- 45062324 ( 32772600 sectors, 16779 MB)\x0d\x0a\x0d\x0a# 3: 45062325-124519814 ( 79457490 sectors, 40682 MB)\x0d\x0a\x0d\x0a# 4: 0- -1 ( 0 sectors, 0 MB)\x0d\x0a\x0d\x0a# 5: 45062388- 61448624 ( 16386237 sectors, 8389 MB)\x0d\x0a\x0d\x0a# 6: 61448688- 81931499 ( 20482812 sectors, 10487 MB)\x0d\x0a\x0d\x0a# 7: 81931563- 83505869 ( 1574307 sectors, 806 MB)\x0d\x0a\x0d\x0a# 8: 83505933-106944704 ( 23438772 sectors, 12000 MB)\x0d\x0a\x0d\x0a# 9: 106944768-124519814 ( 17575047 sectors, 8998 MB)\x0d\x0a\x0d\x0a八、查看目前机器中的所有磁盘及分区情况:\x0d\x0a\x0d\x0a[beinan@localhost ~]$ cat /proc/partitions\x0d\x0a\x0d\x0amajor minor #blocks name\x0d\x0a\x0d\x0a3 0 78150744 hda\x0d\x0a\x0d\x0a3 1 6144831 hda1\x0d\x0a\x0d\x0a3 2 16386300 hda2\x0d\x0a\x0d\x0a3 5 8193118 hda5\x0d\x0a\x0d\x0a3 6 10241406 hda6\x0d\x0a\x0d\x0a3 7 787153 hda7\x0d\x0a\x0d\x0a3 8 11719386 hda8\x0d\x0a\x0d\x0a3 9 8787523 hda9\x0d\x0a\x0d\x0a8 0 58605120 sda\x0d\x0a\x0d\x0a8 1 58604528 sda1