磁盘管理

磁盘管理

上图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格式,若MBRgpt格式进行转换,则所有数据丢失

最后,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(RH6partx -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 -aswapon -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

Swapfileswap文件名,可自定义,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  转换为MBRgtp格式

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

(0)
上一篇 2017-08-20 16:31
下一篇 2017-08-20 19:49

相关推荐

  • btrfs文件系统管理与应用

    btrfs(b-tree、butter fs、better fs),oracle公司研发的替代ext系列的cow机制的文件系统;GPL 核心特性: 多物理卷支持;btrfs可由多个底层物理卷组成;支持RAID,以联机“添加”、“移除”、“修改”; 写时复制更新机制(CoW):复制、更新及替换指针,而非“就地”更新; 数据及元数据校验码:checksum 子卷…

    Linux干货 2017-12-18
  • 马哥教育网络班第21期+第六周课程作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的1、以至少一个空白字符开头的行的行首加#; :%s@^[[:space:]]\+@#@   2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; :%s@^[[:space…

    Linux干货 2016-08-22
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]#cp /etc/rc.d/rc.sysinit /tmp/ [root@localhost&nbs…

    Linux干货 2016-07-29
  • linux终端类型

    人机交互界面:GUI、CLI GUI: gnome:c,gtk kde:c++,qt CLI: bash,zsh,sh,csh,ksh 不同CLI间跳转:alt+f1\f2\f3\f4   终端类型: 物理终端、控制台终端:/dev/console,控制台console 计算机显示器通常被称为控制台终端(Console) 虚拟终端:/dev/tty…

    Linux干货 2016-10-14
  • 马哥教育网络21期+第6周博客练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; :%s@\(^[[:space:]]\+\)@#&@g # Let rhgb know that we&#0…

    Linux干货 2016-08-15