赞
踩
df命令查看磁盘的容量
df
物理主机上的 /dev/sda2
是对应着主机硬盘的分区,后面的数字表示分区号,数字前面的字母 a 表示第几块硬盘(也可能是可移动磁盘),你如果主机上有多块硬盘则可能还会出现/dev/sdb
,/dev/sdc
这些磁盘设备都会在 /dev
目录下以文件的存在形式。“1k-块”,它表示以磁盘块大小的方式显示容量。挂载点:Linux以目录为主,磁盘是挂载在某一目录下的。
df -h //以k,M,G为单位显示容量
du命令查看目录的容量
du //以块为单位
du -h //加上-h参数,以更易读的方式展示
用-d
参数指定查看目录深度:
du -h -d 0 ~ //只查看1级目录的信息
du -h -d 1 ~ //查看2级
常用参数:
du -h //同--human-readable 以K,M,G为单位,提高信息的可读性。
du -a //同--all 显示目录中所有文件的大小。
du -s //同--summarize 仅显示总计,只列出最后加总的值。
dd
命令用于转换和复制文件,在 Linux 中,一切即文件,硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero
和/dev/random
)都像普通文件一样,只是在各自的驱动程序中实现了对应的功能,dd 也可以读取文件或写入这些文件。dd程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。
dd的命令行语句与其他的 Linux 程序不同,因为它的命令行选项格式为选项=值,而不是更标准的–选项 值或-选项=值。dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if
(input file,输入文件)和of
(output file,输出文件)改变。
如用dd命令从标准输入读入用户的输入到标准输出或者一个文件中:
输出到test文件:
dd of=test bs=10 count=1 //或者 dd if=/dev/stdin of=test bs=10 count=1
输出到标准输出:
dd if=/dev/stdin of=/dev/stdout bs=10 count=1
//在打完了上述命令后,继续在终端打字,作为你的输入
上述命令从标准输入设备读入用户输入(缺省值,所以可省略)然后输出到 test 文件,bs
(block size)用于指定块大小(缺省单位为 Byte,也可为其指定如’K’,‘M’,'G’等单位),count
用于指定块数量。
在上述命令中我们指定只读取10个字节的数据,但我们输入了“hello shiyanlou”之后加上空格回车总共 16 个字节(一个英文字符占一个字节)内容,显然超过了设定大小。使用du
和cat
命令看到的写入完成文件实际内容确实只有 10 个字节(那个黑底百分号表示这里没有换行符),而其他的多余输入将被截取并保留在标准输入。
dd在拷贝的同时还可以实现数据转换:
dd if=/dev/stdin of=test bs=10 count=1 conv=ucase
//将标准输入里的英文字符转换为大写再写入test文件
从/dev/zero
设备创建一个容量为 256M 的空文件:
dd if=/dev/zero of=virtual.img bs=1M count=256
du -h virtual.img //查看大小
然后我们要将这个文件格式化(写入文件系统)
我们可以使用下面的命令来将我们的虚拟磁盘镜像格式化为ext4
文件系统:
sudo mkfs.ext4 virtual.img
使用mount
命令挂载磁盘到目录树
用户在 Linux/UNIX 的机器上打开一个文件之前,包含该文件的文件系统必须先进行挂载的动作,此时用户要对该文件系统执行 mount 的指令以进行挂载。Linux/UNIX 命令行的 mount 指令是告诉操作系统,对应的文件系统已经准备好,可以使用了,而该文件系统会对应到一个特定的点(称为挂载点)。挂载好即可供用户使用。
sudo mount //查看下主机已经挂载的文件系统
输出的结果中每一行表示一个设备或虚拟设备,每一行最前面是设备名,然后是 on 后面是挂载点,type 后面表示文件系统类型,再后面是挂载选项(比如可以在挂载时设定以只读方式挂载等等)。
挂载录树:
mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
现在直接来挂载我们创建的虚拟磁盘镜像到/mnt目录:
mount -o loop -t ext4 virtual.img /mnt
mount -o loop --ro virtual.img /mnt //以只读方式挂载
sudo umount /mnt //卸载已挂载磁盘
磁盘挂载到目录树后要对磁盘分区:
sudo fdisk -l //查看硬盘分区表信息
输出结果中开头显示了主机上的磁盘的一些信息,包括容量扇区数,扇区大小,I/O 大小等信息。我们重点看一下中间的分区信息,/dev/sda1
,/dev/sda2
为主分区分别安装了 Windows 和 Linux 操作系统,/dev/sda3
为交换分区(可以理解为虚拟内存),/dev/sda4
为扩展分区,其中包含/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8
四个逻辑分区,因为主机上有几个分区之间有空隙,没有对齐边界扇区,所以分区之间不是完全连续的。
sudo fdisk virtual.img //进入磁盘分区模式
操作前我们首先应先规划好我们的分区方案:这里我将在使用 128M(可用 127M 左右)的虚拟磁盘镜像创建一个 30M 的主分区剩余部分为扩展分区包含 2 个大约 45M 的逻辑分区。
最后不要忘记输入w
写入分区表。
sudo losetup /dev/loop0 virtual.img //建立设备关联
# 如果提示设备忙你也可以使用其它的回环设备,"ls /dev/loop*"参看所有回环设备
sudo losetup -d /dev/loop0 //解除设备关联
然后再使用mkfs
格式化各分区(前面我们是格式化整个虚拟磁盘镜像文件或磁盘),不过格式化之前,我们还要为各分区建立虚拟设备的映射,用到kpartx
工具,需要先安装:
sudo apt-get install kpartx
sudo kpartx -av /dev/loop0 //建立映射
sudo kpartx -dv /dev/loop0 //取消映射
接着再是格式化,我们将其全部格式化为 ext4
:
sudo mkfs.ext4 -q /dev/mapper/loop0p1
sudo mkfs.ext4 -q /dev/mapper/loop0p5
sudo mkfs.ext4 -q /dev/mapper/loop0p6
格式化完成后在/media
目录下新建四个空目录用于挂载虚拟磁盘:
mkdir -p /media/virtualdisk_{1..3} //建立目录
挂载磁盘分区
sudo mount /dev/mapper/loop0p1 /media/virtualdisk_1
sudo mount /dev/mapper/loop0p5 /media/virtualdisk_2
sudo mount /dev/mapper/loop0p6 /media/virtualdisk_3
卸载磁盘分区
sudo umount /dev/mapper/loop0p1
sudo umount /dev/mapper/loop0p5
sudo umount /dev/mapper/loop0p6
然后:
df -h //看是否分区与挂载成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。