首页 > 系统 > Linux > 正文

Linux-磁盘管理小结

2024-06-28 13:20:46
字体:
来源:转载
供稿:网友
linux-磁盘管理小结

这篇博文主要总结了Linux磁盘的一些操作,主要是硬盘的加载,分区(MBR分区和GPT分区),分区的挂载,以及swap分区的加载设置。


基础命令

  • df查看磁盘分区使用状况
    1. -l //仅显示本地磁盘(默认)
    2. -a //显示所有文件系统的磁盘使用情况,包含比如/PRoc/
    3. -h //以1024进制计算最合适的单位显示磁盘容量
    4. -H //以1000进制计算最合适的单位显示磁盘容量
    5. -t //显示指定类型文件系统的磁盘分区
    6. -T //显示磁盘分区类型
    7. -x //不显示指定类型文件系统的磁盘分区
  • du统计磁盘上的文件大小
    1. -b //以byte为单位统计文件
    2. -k //以KB为单位统计文件
    3. -m //以MB为单位统计文件
    4. -h //以1024进制计算最合适的单位显示磁盘容量
    5. -H //以1000进制计算最合适的单位显示磁盘容量
    6. -s //统计指定目标
  • 常用命令
    1. df -lhT
    2. df -lhT -t ext4(分区类型)
    3. df -lhT -x ext4
    4. du -s [指定目录]
    5. du -sb *.zip //模糊匹配
    6. du -sm *.zip
    7. du -sh *.zip

回顾磁盘分区时的注意事项:

  • 主分区和扩展分区总数不能超过4个。
  • 扩展分区最多只能有一个
  • 扩展分区不能直接存取数据
    小知识:
  • Linux系统中硬件设备都是以文件的形式存在于根目录下的Dev目录下。
  • 硬件设备都是有Linux系统自动识别的。
  • 添加的新硬盘,必须进行分区、格式化、挂载后才能使用。
  • MBR分区模式:主分区不超过4个,单个分区容量最大为2TB
  • GPT分区模式:主分区个数“几乎”没有限制,单个分区容量“几乎”没有限制。GPT分区中,最多可以支持128个主分区,且每个分区的大小突破了MBR分区的2TB的限制,最大为18EB=18432PB=18874368TB。缺点是GPT的主分区中,不适合安装X86架构的系统。

当硬盘空间消耗殆尽时怎么办?

比较好的做法应该是:在保留原硬盘的基础上,给服务器添加新的硬盘。


为虚拟机添加硬盘

  1. 将虚拟机关机(poweroff)。(当然,也有服务器的主板支持热插拔的。可以带电连接新硬盘。)
  2. 虚拟机设置->下面的“添加”->类型选择“硬盘”->下一步->选择硬盘类型(默认的(SCSI)就好)->创建一个新的虚拟机硬盘(下一步)->设置磁盘最大值;(没什么特殊要求,基本都是下一步,最后一步OK)。
  3. 重启Linux系统,使用fdisk -l//显示每个硬盘的分区列表(新添加的硬盘是没有分区表的)可以看到Disk /dev/sdb:和Disk /dev/sda:2块硬盘,以及sda的分区表,没有sdb的分区表。
  4. 先使用MBR分区模式为sdb分区。
    [root@joe dev]# 
    fdisk /dev/sdb
        //进入分区模式Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x9ce83f46.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').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    //修改分区的系统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): nCommand action   e   extended        //扩展分区   p   primary partition (1-4)//主分区pPartition number (1-4):
    1
    First cylinder (1-2610, default 1):         //扇区的范围(1-2610),默认开始1,直接回车则使用默认数值Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 500MCommand (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         500     4016218+  83  Linux        //分配好的主分区1//添加第二个分区Command (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): Value out of range.Partition number (1-4): 2First cylinder (501-2610, default 501): Using default value 501Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610): 500MValue out of range.Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610): Using default value 2610Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         500     4016218+  83  Linux/dev/sdb2             501        2610    16948575   83  Linux        //第二个分区//由于分配不合适主观意愿,想删除分区Command (m for help): dPartition number (1-4):
    2
          //分区编号Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         500     4016218+  83  Linux        //第二个分区已经删除Command (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4):
    2
    First cylinder (501-2610, default 501): Using default value 501Last cylinder, +cylinders or +size{K,M,G} (501-2610, default 2610): 1000Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         500     4016218+  83  Linux/dev/sdb2             501        1000     4016250   83  LinuxCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)e    //建立扩展分区Partition number (1-4):
    3
    First cylinder (1001-2610, default 1001): Using default value 1001Last cylinder, +cylinders or +size{K,M,G} (1001-2610, default 2610): Using default value 2610Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         500     4016218+  83  Linux/dev/sdb2             501        1000     4016250   83  Linux/dev/sdb3            1001        2610    12932325    5  ExtendedCommand (m for help): nCommand action   l   logical (
    5 or over)
        //此时扩展分区e没有了,说明MBR只能有一个扩展分区,接下来是逻辑分区   p   primary partition (1-4)lFirst cylinder (1001-2610, default 1001): Using default value 1001Last cylinder, +cylinders or +size{K,M,G} (1001-2610, default 2610): 1500Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         500     4016218+  83  Linux/dev/sdb2             501        1000     4016250   83  Linux/dev/sdb3            1001        2610    12932325    5  Extended/dev/sdb5            1001        1500     4016218+  83  Linux        //逻辑分区是从5开始的,1-4只能是主分区和扩展分区的编号Command (m for help): nCommand action   l   logical (5 or over)   p   primary partition (1-4)lFirst cylinder (1501-2610, default 1501): Using default value 1501Last cylinder, +cylinders or +size{K,M,G} (1501-2610, default 2610): Using default value 2610Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         500     4016218+  83  Linux/dev/sdb2             501        1000     4016250   83  Linux/dev/sdb3            1001        2610    12932325    5  Extended/dev/sdb5            1001        1500     4016218+  83  Linux/dev/sdb6            1501        2610     8916043+  83  LinuxCommand (m for help):
    w //保存写
    The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@joe dev]# fdisk 
    -
    lDisk 
    /dev/sdb
    : 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9ce83f46   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         500     4016218+  83  Linux/dev/sdb2             501        1000     4016250   83  Linux/dev/sdb3            1001        2610    12932325    5  Extended/dev/sdb5            1001        1500     4016218+  83  Linux/dev/sdb6            1501        2610     8916043+  83  LinuxDisk 
    /dev/sda
    : 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000a030a   Device Boot      Start         End      Blocks   Id  System/dev/sda1   *           1          26      204800   83  LinuxPartition 1 does not end on cylinder boundary./dev/sda2              26         281     2048000   82  Linux swap / SolarisPartition 2 does not end on cylinder boundary./dev/sda3             281         536     2048000   83  LinuxPartition 3 does not end on cylinder boundary./dev/sda4             536        2611    16669696    5  Extended/dev/sda5             536        2611    16668672   83  Linux
  5. 使用GPT分区模式分区(同时GPT的分区工具parted也可以MBR分区)
    [root@joe dev]# partedGNU Parted 2.1使用 
    /dev/sda
        //注意正在使用的是sdaWelcome to GNU Parted! Type 'help' to view a list of commands.(parted) print all                                                        Model: VMware, VMware Virtual S (scsi)Disk /dev/sda: 21.5GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  Start   End     Size    Type      File system     标志 1      1049kB  211MB   210MB   primary   ext4            启动 2      211MB   2308MB  2097MB  primary   linux-swap(v1) 3      2308MB  4405MB  2097MB  primary   ext4 4      4405MB  21.5GB  17.1GB  extended 5      4406MB  21.5GB  17.1GB  logical   ext4Model: VMware, VMware Virtual S (scsi)Disk 
    /dev/sdb:
     21.5GBSector size (logical/physical): 512B/512BPartition Table: msdos    //sdb的应该是我们需要的gptNumber  Start  End  Size  Type  File system  标志警告: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。错误: /dev/sr0: unrecognised disk label                                   (parted) 
    select /dev/sdb
          //选择sdb                                            使用 /dev/sdb(parted) mkpart     //如果不进行gpt的选择设置,直接mkpart那么我们还是使用的MBR模式                                                      分区类型?  primary/主分区/extended/扩展分区? primary                     文件系统类型?  [ext2]? ^Z--------------------------------------------------------------------------------------------------(parted) 
    select /dev/
    sdb                                                  使用 /dev/sdb(parted) mklabel gpt                                                      警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do youwant to continue?是/Yes/否/No? yes(parted) print all                                                        Model: VMware, VMware Virtual S (scsi)Disk 
    /dev/sda:
     21.5GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  Start   End     Size    Type      File system     标志 1      1049kB  211MB   210MB   primary   ext4            启动 2      211MB   2308MB  2097MB  primary   linux-swap(v1) 3      2308MB  4405MB  2097MB  primary   ext4 4      4405MB  21.5GB  17.1GB  extended 5      4406MB  21.5GB  17.1GB  logical   ext4Model: VMware, VMware Virtual S (scsi)Disk 
    /dev/sdb:
     21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber  Start  End  Size  File system  Name  标志警告: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。错误: /dev/sr0: unrecognised disk label                                   (parted) mkpart                                                           分区名称?  []? test1                                                     文件系统类型?  [ext2]? ext4起始点?
    1
               //以1开始,默认单位是M  unit GB 指定为GB为单位                                               结束点? 1000M                                                           (parted) print                                                            Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber  Start   End     Size   File system  Name   标志 1      1049kB  1000MB  999MB               test1(parted)
    rm 1
         //删除分区                                                        (parted) print                                                            Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber  Start  End  Size  File system  Name  标志(parted) mkpart                                                           分区名称?  []? test1                                                     文件系统类型?  [ext2]? ext4                                            起始点?0       //以0开始,出现了警告,这里是字节对齐的原因造成的,所以一般为了避免警告,我们不以0开始。                                                        结束点? 1000M警告: The resulting partition is not properly aligned for best performance.忽略/Ignore/放弃/Cancel? cancel                                           (parted) mkpart分区名称?  []? test1                                                     文件系统类型?  [ext2]? ext4                                              起始点?1                                                                结束点?1000M                                                            (parted) print                                                            Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber  Start   End     Size   File system  Name   标志 1      1049kB  1000MB  999MB               test1(parted) mkpart                                                           分区名称?  []? test2                                                     文件系统类型?  [ext2]? ext4                                              起始点? 1000M                                                            结束点? 1500M                                                            (parted) printModel: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber  Start   End     Size   File system  Name   标志 1      1049kB  1000MB  999MB               test1 2      1000MB  1500MB  500MB               test2//上面是交互模式,下面是命令模式(parted) mkpart test3 
    1500 3000
             //使用一条命令直接搞定 分区名 起始位 结束位                                  警告: The resulting partition is not properly aligned for best performance.    //出现分区的原因是起始的1500和上次结束的1500重叠了。忽略/Ignore/放弃/Cancel? cancel         (parted) mkpart test3 1501M 1700M                                         (parted) mkpart test4 1701M 1800M                                        (parted) mkpart test5 1801M 1900M                                        (parted) print                                                            Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptNumber  Start   End     Size    File system  Name   标志 1      1049kB  1000MB  999MB                test1 2      1000MB  1500MB  500MB                test2 3      1501MB  1700MB  199MB                test3 4      1701MB  1800MB  99.6MB               test4 5      1801MB  1900MB  98.6MB               test5(parted) 
    rm 5
    (parted) quit
  6. 分区完以后,就是格式化和挂载分区了。也就是设置文件系统。在这里需要注意以下内容:MBR分区只能格式化主分区和扩展分区,逻辑分无不能格式化 GPT分区,在格式化以后,只能使用parted 的print查看格式结果 挂载分区:分区默认的挂载目录/mnt目录挂载点必须存在。
    [root@joe dev]#
    ls -l /dev/sdb*
    brw-rw----. 1 root disk 8, 16 5月   7 01:18 /dev/sdbbrw-rw----. 1 root disk 8, 17 5月   7 01:18 /dev/sdb1brw-rw----. 1 root disk 8, 18 5月   7 01:18 /dev/sdb2brw-rw----. 1 root disk 8, 19 5月   7 01:18 /dev/sdb3brw-rw----. 1 root disk 8, 21 5月   7 01:18 /dev/sdb5brw-rw----. 1 root disk 8, 22 5月   7 01:18 /dev/sdb6[root@joe dev]# mkfs.ext3 
    /dev/sdb1
            //第一种设置方式mke2fs 1.41.12 (17-May-2010)文件系统标签=操作系统:Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks502944 inodes, 2008117 blocks100405 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=205940326462 block groups32768 blocks per group, 32768 fragments per group8112 inodes per groupSuperblock backups stored on blocks:     32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632正在写入inode表: 完成                            Creating journal (32768 blocks): 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 23 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.[root@joe dev]# mkfs 
    -t ext4 /dev/sdb2
            //第二种方法mke2fs 1.41.12 (17-May-2010)文件系统标签=操作系统:Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks50288 inodes, 200812 blocks10040 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=2097152007 block groups32768 blocks per group, 32768 fragments per group7184 inodes per groupSuperblock backups stored on blocks:     32768, 98304, 163840正在写入inode表: 完成                            Creating journal (4096 blocks): 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 26 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.[root@joe dev]# 
    mkdir -p /mnt/joetest
        //首先建立挂载点[root@joe dev]# 
    mount /dev/sdb1 /mnt/joetest/
            //挂载分区[root@joe dev]# 
    umount /mnt/joetest/
                //卸载挂载点上面这中挂载方式是临时的,永久性的应该如下:vim 
    + /etc/
    fstab在末尾插入一行
    /dev/sdb1 /mnt/imooc ext3 default 0 0
    设备名称    挂载点    文件系统类型保存退出即可
  7. swap交换分区(步骤为:建立一个普通的Linux分区,修改分区类型的16进制编码,格式化交换分区,启用交换分区。
    [root@joe dev]# 
    fdisk /dev/
    sdbWARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.WARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        1000     8032468+  83  Linux/dev/sdb2            1001        1100      803250   83  Linux/dev/sdb3            1101        2610    12129075    5  Extended/dev/sdb5            1101        1500     3212968+  83  Linux/dev/sdb6            1501        2610     8916043+  83  LinuxCommand (m for help): tPartition number (1-6): 
    2
           //修改IDHex code (type L to list codes): L 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris         1  FAT12           39  Plan 9          
    82 Linux swap
     / So c1  DRDOS/sec (FAT- 2  XENIX root      3c  PartitionMagic  
    83 Linux
               c4  DRDOS/sec (FAT- 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-Hex code (type L to list codes): 82Changed system type of partition 2 to 82 (Linux swap / Solaris)Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@joe dev]# fdisk 
    /dev/
    sdbWARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.WARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        1000     8032468+  83  Linux/dev/sdb2            1001        1100      803250  
    82 Linux swap /
     Solaris/dev/sdb3            1101        2610    12129075    5  Extended/dev/sdb5            1101        1500     3212968+  83  Linux/dev/sdb6            1501        2610     8916043+  83  LinuxCommand (m for help): q[root@joe dev]# mkswap 
    /dev/sdb2
        //设置交换区Setting up swapspace version 1, size = 803244 KiBno label, UUID=c7d31434-4013-4bbb-b68e-29b501934377[root@joe dev]# swapon 
    /dev/sdb2
        //开启交换区[root@joe dev]# free             total       used       free     shared    buffers     cachedMem:       1030612     132468     898144          0      13612      51388-/+ buffers/cache:      67468     963144Swap:      
    2851232 0 2851232
    [root@joe dev]# swapoff 
    /dev/sdb2
        //关闭交换区[root@joe dev]#

上一篇:Linux升级Ruby

下一篇:Linux-tr命令

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表