上图sda disk information中对 255 heads,63 sectors/track,1958 cylinders的解析:
sda磁盘总共有1958个cylinder(柱面),每个cylinder(柱面)有63个sectors(扇区),每个sectors(扇区)有255个heads(磁头)
那么这块sda的总的磁头数量为:255*63*1958=31455270
因为一块磁盘的空间大小计算方式为:这块磁盘的总的磁头数量(Heads)*512bytes(因为每个磁头数量为512字节)
所以这块磁盘的空间为31455270*512=16105098240=16.1G
fdisk /dev/sdb后,按m,再按l(list
MBR格式可分为4个主分区
GPT 格式可分为128个主分区
使用fdisk对磁盘进行分区,默认使用MBR格式,使用gdisk对磁盘进行分区,默认使用gpt格式,使用parted对磁盘分区,格式可为MBR,也可为gpt格式,若MBR与gpt格式进行转换,则所有数据丢失
最后,Mounted on列表示文件系统的安装点。
//列出各文件系统的i节点使用情况。 #df -ia Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda5 98392 23919 74473 25% / none 0 0 0 - /proc /dev/hda1 12048 38 12010 1% /boot none 0 0 0 - /dev/pts /dev/hda3 1275456 355008 920448 28% /home none 31843 1 31842 1% /dev/shm /dev/hda2 3489792 133637 3356155 4% /usr /dev/hda6 66264 9876 56388 15% /var //列出文件系统的类型。 #df -T Filesystem Type 1k-blocks Used Available Use% Mounted on /dev/hda5 ext3 381139 332921 28540 93% / /dev/hda1 ext3 46636 6871 37357 16% /boot /dev/hda3 ext3 10041144 6632528 2898556 70% /home none tmpfs 127372 0 127372 0% /dev/shm /dev/hda2 ext3 27474876 24130460 1948772 93% /usr /dev/hda6 ext3 256667 232729 10686 96% /var2
2. du
du的英文原义为“disk
usage”,含义为显示磁盘空间的使用情况,统计目录(或文件)所占磁盘空间的大小。该命令的功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出指定目录,则对当前目录进行统计。
df命令的各个选项含义如下:
-s:对每个Names参数只给出占用的数据块总数。 -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。 -b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。 -k:以1024字节为单位列出磁盘空间使用情况。 -c:最后再加上一个总计(系统默认设置)。 -l:计算所有的文件大小,对硬链接文件,则计算多次。 -x:跳过在不同文件系统上的目录不予统计。
下面举例说明du命令的使用:
//查看/mnt目录占用磁盘空间的情况 #du –abk /mnt 1 /mnt/cdrom 1 /mnt/floppy 3 /mnt //列出各目录所占的磁盘空间,但不详细列出每个文件所占的空间 #du 3684 ./log 84 ./libnids-1.17/doc 720 ./libnids-1.17/src 32 ./libnids-1.17/samples 1064 ./libnids-1.17 4944 .
输出清单中的第1列是以块为单位计的磁盘空间容量,第2列列出目录中使用这些空间的目录名称。
◆这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数:
#du –s /mnt 3 /mnt //列出所有文件和目录所占的空间(使用a选项),并以字节为单位(使用b选项)来计算大小 #du –ab /root/mail 6144 mail/sent-mail 1024 mail/saved-messages 8192 mail
3、fdisk
fdisk可以划分磁盘分区。下面给出使用Fdisk命令进行磁盘分区的操作步骤:
#fdisk /dev/had //使用/dev/had作为默认的分区设备 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)
用户通过提示键入“m”,可以显示Fdisk命令各个参数的说明。
Fdisk有很多参数,可是经常使用的只有几个。
◆在Linux分区过程,一般是先通过p参数来显示硬盘分区表信息,然后根据信息确定将来的分区。如下所示:
Disk /dev/sda: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 41 522 3871665 83 Linux /dev/hda2 1 40 321268+ 82 Linux swap Partition table entries are not in disk order Command (m for help):
◆如果想完全改变硬盘的分区格式,就可以通过d参数一个一个地删除存在的硬盘分区。删除完毕,就可以通过n参数来增加新的分区。当按下“n”后,可以看到如下所示:
Command (m for help): n Command action e extended p primary partition (1-4) p Partiton number(1-4):1 First cylinder(1-1023):1 Last cylinder or + size or +sizeK or + sizeM(1-1023):+258M
这里要选择新建的分区类型,是主分区还是扩展分区;并选择p或是e。然后就是设置分区的大小。
◆要提醒注意的是,如果硬盘上有扩展分区,就只能增加逻辑分区,不能增加扩展分区。
◆在增加分区的时候,其类型都是默认的Linux Native,如果要把其中的某些分区改变为其他类型,例如Linux
Swap或FAT32等,可以通过命令t来改变,当按下“t”改变分区类型的时候,系统会提示要改变哪个分区、以及改变为什么类型(如果想知道系统所支持的分区类型,键入l),如下所示:
Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 82 Changed system type of partition 1 to 82 (Linux swap)
改变完了分区类型,就可以按下“w”,保存并退出。如果不想保存,那么可以选择“q”直接退出,如下所示:
RH7 partprobe /dev/sda 将新建分区写入内核
RH6 partx -a /dev/sda 将新建分区写入内核
添加一个新的文件系统需要生成的文件数规则
① 定义一个设备 /dev/sda
② 设备分区 fidsk /dev/sda
③ 写入内核 RH6 partx -a /dev/sda ;
RH7 partprobe /dev/sda
④ 创建一个文件系统(格式化) mkfs.ext4 /dev/sda4
④ 建立一个卷标 e2label
⑤ 写入到/etc/fatab 开机自启
⑥ 挂载文件系统 mount -a
格式化分区步骤:
① fdisk -> ② partprobe(RH6用partx -a)->③mkfs.文件类型->④mount -a
磁盘分区格式化为MBR,并设为SWAP缓冲类型
1 fdisk /dev/sda 对磁盘a新建分区
2 m 列出所有操作命令
3 n 添加新的分区
4 e/p e添加扩展分区 p添加系统分区
5 设置分区的起始位和结束位
6 t 改变文件系统类型
7 L 列出所有可选择的文件系统类型
8 w 保存退出
9 partx -a /dev/sda 将添加的分区和文件类型写入内核(RH6)
partprobe /dev/sda 将添加的分区和文件类型写入内核(RH7)
格式化文件系统
10 mkfs.ext4 /dev/sda4 格式化为ext4类型
mkswap /dev/sda4 格式化为swap类型
11 vim /etc/fstab
Ext4 格式 /dev/sda4 /mnt ext4 defaults 0 0 (将/dev/sda4挂在到/mnt上)
Swap 格式 /dev/sda4 swap swap defaults 0 0 (将缓冲分区挂载到swap上)
12 挂载文件系统
Ext4格式 mount -a
Swap格式 swapoff -a;swapon -a
上述添加磁盘分区是从未分配的空间划分的新区域,若在以划分的磁盘上划出一块区域做swap扩展,如在sda1根目录上划出一块区域做swap分区扩展,步骤如下
增加swap分区二
在sda跟挂载目录上新建一文件做swap
1 mkdir /text
2 dd if=/dev/zero of=swapfile(swap设备文件名) bs=1M(最小存储单元) count=500(单元个数)
3 partprobe /dev/sda 写入内核生效(RH7)
Partx -a /dev/sda 写入内核生效(RH6)
4 mkswap /text/swapfile 格式化为swap
5 vim /etc/fatab
/text/swapfile swap swap defaults 0 0
6 swapoff -a ; swapon -a 挂载
若有多个新建的磁盘分区为swap,可在/etc/fstab中设置优先应用级别
Eg /dev/sda4 /mnt ext4 defaults,pri=1 0 0
/text/swapfile swap swap defaults,pri=2 0 0
Pri=1的优先级别大于pri=2,即/text/swapfile 优先于/dev/sda4使用
格式化swap mkswap /dev/sda5
mkswap /text/swapfile(swap设备文件)
挂载生效 : swapoff -a ; swapon -a
Swapon -s 查看电脑上的所有swap分区设备
/dev/zero 空设备
/dev/null 空设备(只要过程,不要结果)
从已分区的空间扩充swap:
dd if=/dev/zero of=swapfile bs=1M count=500
Swapfile为swap文件名,可自定义,bs为最小存储单元,count为最小单元个数
格式转换 MBR<=>GTP
将MBR转换为gtp格式:方法一
1 partrd /dev/sda 将第二块磁盘转换为GTP格式
2 mklabel gpt 输入gtp格式
3 y 确认转换
4 quit
5 partx -a /dev/sda 写入内核(RH6)
Partprobe /dev/sda 写入内核 (RH7)
方法二:也可用命令转换
Parted -s /dev/sda mklabel msdos/gtp 转换为MBR或gtp格式
用gdisk命令添加分区为gtp格式,方法过程同fdisk一样
fdisk -l 查看磁盘分区
tune2fs -l 只能查看ext类型的文件系统
tune2fs -o acl /dev/sda5 对sda5分区添加acl功能
mkfs.ext4 -b 4096 /dev/sda5 对sda5分区修改block size的大小为4M (RH6)
tune2fs -i0 -c0 /dev/sda5 将最大挂载次数修改为-1,即永远达不到最大值,不用自检 (0为零)
mkfs.xfs -b size=1024 /dev/sda5 对sda5分区修改block size的大小为1M (RH7)
修改block size (最小存储单元)的值
mkfs.ext4 -b 4096 /dev/sda5 对sda5分区修改block size的大小为4M (RH6)
mkfs.xfs -b size=1024 /dev/sda5 对sda5分区修改block size的大小为1M (RH7)
Fsck 检查和修复linux系统文件类型(未挂载)
-a 如果检查到错误,自动修复文件系统
-A 检查/etc/fstab文件中列出的所有文件系统
-N 不进行检查,只显示哪些检查会被执行
-r 出现错误时提示
-R 使用-A选项时跳过根文件系统
-s 检查多个文件系统时,依次进行检查
-t 指定要检查的文件系统
-V 在检查时产生详细输出
-y 检测到错误时自动修复文件系统
练习
11、创建一个2G的文件系统,块大小为2048byte,预留1%可
用空间,文件系统ext4,卷标为TEST,要求此分区开机后自
动挂载至/test目录,且默认有acl挂载选项
注:echo -e “n\np\n1\n+2G\nw\n 此命令可直接进行创建分区,不用在进dfisk 一步一步操作,挂载系统命令makfs.ext4
开机后自 动挂载至/test目录,且默认有acl挂载选项 还可以进 入 vim /etc/fstab 进行添加
至/test目录,且默认有acl挂载选项
练习:要求输入挂载点,将显示其UUID(不用fstab)
read -p “please input Mounted on name:” Name1
if df $Name1 &>/dev/null ; then
Name2=`df “$Name1” |tail -1 |grep -o “^/[^ ]*”`
blkid $Name2 |grep -o ‘\<UUID=”[[:alnum:]|-]*”‘
unset Name1 Name2
else
echo “error,Mounted on name unknown”;exit 1
fi
原创文章,作者:linux-qiao,如若转载,请注明出处:http://www.178linux.com/85119