linux磁盘管理
命令df:
命令df用来查看以挂载的磁盘总容量、使用容量剩余容量等等,可以不加任何参数,默认以KB为单位显示。示例命令如下:
[root@localhost ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda3 12943360 921652 12021708 8% /
devtmpfs 924888 0 924888 0% /dev
tmpfs 934344 0 934344 0% /dev/shm
tmpfs 934344 8728 925616 1% /run
tmpfs 934344 0 934344 0% /sys/fs/cgroup
/dev/sda1 201388 105152 96236 53% /boot
tmpfs 186872 0 186872 0% /run/user/0
使用-h选项以合适的单位来显示,可读性高
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 13G 900M 12G 8% /
devtmpfs 904M 0 904M 0% /dev
tmpfs 913M 0 913M 0% /dev/shm
tmpfs 913M 8.6M 904M 1% /run
tmpfs 913M 0 913M 0% /sys/fs/cgroup
/dev/sda1 197M 103M 94M 53% /boot
tmpfs 183M 0 183M 0% /run/user/0
使用-i表示查看inodes的使用情况。
[root@localhost ~]# df -i |grep -v tmpfs
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 12953600 24172 12929428 1% /
/dev/sda1 204800 330 204470 1% /boot
使用-k-m分别为以kb和mb为单位显示:
[root@localhost ~]# df -k |grep -v tmpfs
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda3 12943360 922400 12020960 8% /
/dev/sda1 201388 105152 96236 53% /boot
[root@localhost ~]# df -m |grep -v tmpfs
文件系统 1M-块 已用 可用 已用% 挂载点
/dev/sda3 12640 901 11740 8% /
/dev/sda1 197 103 94 53% /boot
第一列为分区名字,第二列为总容量,第三列为使用容量,第四列为剩余容量,第五列为使用容量的百分比,最后一列为挂载点
命令du:
用来查看某个目录或文件所占的空间大小,其格式为du [选项][文件名或目录名]
选项:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件
示例如下:
显示指定文件大小
[root@localhost /]# touch wang.txt
[root@localhost /]# du wang.txt
0 wang.txt
显示当前目录总的大小:
[root@localhost /]#du -a(节选)
0 ./usr/local/share/man/man4
0 ./usr/local/share/man/man4x
0 ./usr/local/share/man/man5
0 ./usr/local/share/man/man5x
0 ./usr/local/share/man/man6
0 ./usr/local/share/man/man6x
0 ./usr/local/share/man/man7
0 ./usr/local/share/man/man7x
0 ./usr/local/share/man/man8
0 ./usr/local/share/man/man8x
0 ./usr/local/share/man/man9
0 ./usr/local/share/man/man9x
0 ./usr/local/share/man/mann
4 ./usr/local/share/man
4 ./usr/local/share
0 ./usr/local/src
8 ./usr/local
0 ./usr/src/debug
0 ./usr/src/kernels
0 ./usr/src
782268 ./usr
0 ./home
0 ./media
0 ./mnt
0 ./opt
0 ./srv
985868 .
只显示总和大小:
[root@localhost /]# du -s
985868
使用-sh查看用户、文件、目录的 大小:
[root@localhost /]# du -sh /boot
93M /boot
[root@localhost /]# du -sh /etc/passwd
4.0K /etc/passwd
[root@localhost /]# du -sh root
28K root
磁盘分区与格式化:
添加磁盘:
最后重启一下系统完成。
命令fdisk:
fdisk是linux下的分区工具,但是只能划分小于2TB的分区
命令格式为:
fdisk [-l] [设备名称]
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0005b86b
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 16035839 7812096 82 Linux swap / Solaris
/dev/sda3 16035840 41943039 12953600 83 Linux
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
添加成功。
划分分区;
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xb29d1532 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
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 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1-4
分区号 (1-4,默认 1):1
起始 扇区 (2048-10485759,默认为 2048):2018
值超出范围。
起始 扇区 (2048-10485759,默认为 2048):201^H48
值超出范围。
起始 扇区 (2048-10485759,默认为 2048):2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):
将使用默认值 10485759
分区 1 已设置为 Linux 类型,大小设为 5 GiB
按p查看已有磁盘的状态:
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb29d1532
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10485759 5241856 83 Linux
扩展学习parted分区gpt格式
概念:parted只是个分区工具
当使用MBR分区表时最多只支持4个主分区或三个主分区和一个扩展分区
而GPT分区表对分区数量没有限制,但Windows最大仅支持128个GPT分区
参考文献:http://ask.apelearn.com/question/7243
挂载硬盘(也可以挂载光驱)mount 需要挂载的硬盘 到哪个路径下,/mnt 一般都挂载在这里目录下.
[root@localhost ~]# mount /dev/sdb /mnt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 13G 901M 12G 8% /
devtmpfs 904M 0 904M 0% /dev
tmpfs 913M 0 913M 0% /dev/shm
tmpfs 913M 8.6M 904M 1% /run
tmpfs 913M 0 913M 0% /sys/fs/cgroup
/dev/sda1 197M 103M 94M 53% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sdb 5.0G 33M 5.0G 1% /mnt
这里mount /dev/sdb 指的是盘符 分区号, /mnt/ 指的是需要挂载的路径,我们一般挂载硬盘或者光驱都默认挂载在这里。
--
也可以卸载,我们先给这个mnt里创建个文件和目录 umount
重新挂载一个硬盘 用mount -o remount,rw /dev/sdb /mnt
命令mkfs 文件类型
概念:Windows下的文件系统有FAT32和NTFS。
命令介绍
命令:mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4、和mkfs.xfs
mke2fs命令常用的选项如下:
-b 表示分区时设定每个数据区块占用的空间大小,目前每个数据块支持1024B,2048B以及4096B
-i 表示设定inode的大小
-N 表示设定inode的数量,有时默认的inode不够用,所要要自定义
-c 表示在格式化前先检查一下磁盘是否有问题,加上这个选项以后,运行速度会非常慢。
-L 表示预设该分区的标签(label)
-j 表示建立ext3格式的分区,如果使用mkfs.ext3格式 就不需要加这个选项了
-t 比用来指定文件系统的类型.
/etc/fstab 配置文件 (挂载配置文件)
系统启动时需要挂载的各个分区,各列的含义如下:
第一列:分区的标识,可以写分区的LABEL、分区的UUID
第二列:就是挂载点
第三列:就是分区的格式
第四列:就是mount的挂载参数,一般直接写defaults
第五列:数字表示是否被dump备份,1表示备份,0表示不备份
第六列:表示开机时是否自检磁盘,1和2都表示检测,0表示不检测.
手动增加swap空间 (虚拟内存):
概念:它类似于Windows的虚拟内存,分区时一般制定虚拟内存的大小实际内存的2倍,如果实际内存超过了4GB,那么划分9GB给虚拟内存就足够日常交换了。
假如说虚拟内存不够用的情况,就必须增加一个虚拟磁盘,因为我们不可能重新给磁盘分区。
增加虚拟磁盘的基本思路:
建立 swap file - 格式化为swap格式 - 启用该虚拟磁盘
首先建立一个swap file:
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=1M
^C
记录了3719+0 的读入
记录了3719+0 的写出
3899654144字节(3.9 GB)已复制,100.291 秒,38.9 MB/秒
dd是用来操作磁盘 可读可写 ,if 从哪里读取 /dev/zero是内核一个源源不断创建0的文件,of 指定写到哪里去 /tmp/newdisk 这个文件是把读取出来的信息 放到net disk目录下,bs指定每个块的大小,count定义块的数量。
[root@localhost /]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 3808252 KiB
无标签,UUID=e63644de-5129-4ec1-9c72-7b3e57d9dadc
查看目前的swap有多大 free -m
[root@localhost /]# free -m
total used free shared buff/cache available
Mem: 1824 119 69 8 1635 1521
Swap: 7628 0 7628
把刚新增加的虚拟内存添加进去swapon
[root@localhost /]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@localhost /]# free -m
total used free shared buff/cache available
Mem: 1824 122 66 8 1635 1518
Swap: 11347 0 11347