前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux】学习笔记(八) Linux 磁盘管理

【Linux】学习笔记(八) Linux 磁盘管理

作者头像
韩旭051
发布2020-06-24 17:13:09
1K0
发布2020-06-24 17:13:09
举报
文章被收录于专栏:刷题笔记刷题笔记

du与df

  • du(estimate file space usage)
  • df(report file system disk space usage)

df 查看磁盘容量

代码语言:javascript
复制
df

加上-h参数 更方便的查看 human-readable

代码语言:javascript
复制
df -h

du 查看目录的容量

# 默认同样以 块 的大小展示

代码语言:javascript
复制
du

# 加上`-h`参数,以更易读的方式展示

代码语言:javascript
复制
du -h
代码语言:javascript
复制
du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。
du -a #同--all 显示目录中所有文件的大小。
du -s #同--summarize 仅显示总计,只列出最后加总的值。

磁盘操作(很危险请在虚拟机中学习操作)

dd操作

  • dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据或者空数据等任务中
  • dd程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。

dd的命令行语句与其他的 Linux 程序不同, 因为它的命令行选项格式为选项=值 而不是更标准的--选项 值-选项=值dd默认从标准输入中读取, 并写入到标准输出中, 但可以用选项if(input file,输入文件)和of(output file,输出文件)改变。

学习样例

dd 实现数据输入

代码语言:javascript
复制
# 输出到文件
$ 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 个字节(一个英文字符占一个字节)内容, 显然超过了设定大小。 使用ducat命令看到的写入完成文件实际内容确实只有 10 个字节(那个黑底百分号表示这里没有换行符), 而其他的多余输入将被截取并保留在标准输入。

dd 实现数据转换

代码语言:javascript
复制
$ dd if=/dev/stdin of=test bs=10 count=1 conv=ucase

小写转大写存储

1 创建虚拟镜像

代码语言:javascript
复制
$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img

2 mkfs 命令格式化磁盘(我们这里是自己创建的虚拟磁盘镜像)

代码语言:javascript
复制
$ sudo mkfs.ext4 virtual.img

将我们的虚拟磁盘镜像格式化为ext4文件系统

3 使用 mount 命令挂载磁盘到目录树

代码语言:javascript
复制
$ mount -o loop -t ext4 virtual.img /mnt
# 也可以省略挂载类型,很多时候 mount 会自动识别

# 以只读方式挂载
$ mount -o loop --ro virtual.img /mnt
# 或者mount -o loop,ro virtual.img /mnt

3.2 使用 umount 命令卸载已挂载磁盘

代码语言:javascript
复制
# 命令格式 sudo umount 已挂载设备名或者挂载点,如:
$ sudo umount /mnt

4 使用 fdisk 为磁盘分区

代码语言:javascript
复制
# 查看硬盘分区表信息
$ sudo fdisk -l
代码语言:javascript
复制
# 进入磁盘分区模式
$ sudo fdisk virtual.img

5 使用 losetup 命令建立镜像与回环设备的关联

代码语言:javascript
复制
$ sudo losetup /dev/loop0 virtual.img
# 如果提示设备忙你也可以使用其它的回环设备,"ls /dev/loop*"参看所有回环设备

# 解除设备关联
$ sudo losetup -d /dev/loop0

6 kpartx 为各分区建立虚拟设备的映射

代码语言:javascript
复制
$ sudo apt-get install kpartx
$ sudo kpartx -av /dev/loop0

# 取消映射
$ sudo kpartx -dv /dev/loop0

7 使mkfs 格式化各分区

代码语言:javascript
复制
$ sudo mkfs.ext4 -q /dev/mapper/loop0p1
$ sudo mkfs.ext4 -q /dev/mapper/loop0p5
$ sudo mkfs.ext4 -q /dev/mapper/loop0p6

8在/media目录下新建四个空目录用于挂载虚拟磁盘:

代码语言:javascript
复制
$ mkdir -p /media/virtualdisk_{1..3}
代码语言:javascript
复制
# 挂载磁盘分区
$ 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

查看效果

代码语言:javascript
复制
$ df -h

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • du与df
    • df 查看磁盘容量
      • du 查看目录的容量
      • 磁盘操作(很危险请在虚拟机中学习操作)
        • dd操作
          • 学习样例
          • dd 实现数据输入
          • dd 实现数据转换
        • 1 创建虚拟镜像
          • 2 mkfs 命令格式化磁盘(我们这里是自己创建的虚拟磁盘镜像)
            • 3 使用 mount 命令挂载磁盘到目录树
              • 3.2 使用 umount 命令卸载已挂载磁盘
            • 4 使用 fdisk 为磁盘分区
              • 5 使用 losetup 命令建立镜像与回环设备的关联
                • 6 kpartx 为各分区建立虚拟设备的映射
                  • 7 使mkfs 格式化各分区
                    • 8在/media目录下新建四个空目录用于挂载虚拟磁盘:
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档