Linux磁盘管理(命令行)

Linux磁盘管理(命令行)Linuxfdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。

大家好,又见面了,我是你们的朋友全栈君。

查看磁盘设备

使用df或者ls命令查看Linux系统的磁盘设备,下图的sdb1就是我接入Ubuntu的一个SD卡,sda是系统硬盘(虚拟机的虚拟磁盘)。

在这里插入图片描述

文件系统格式简介

我们可以在Ubuntu下使用下面的方式查看各磁盘的文件系统类型,

在这里插入图片描述
上图显示,linux系统分区的文件系统类型为ext4,SD卡的文件系统为ntfs,下面是常见文件系统的简介:

EXT

EXT是延伸文件系统(英语:Extended file system,缩写为 ext或 ext1),也译为扩展文件系统,一种文件系统,于1992年4月发表,是为linux核心所做的第一个文件系统。采用Unix文件系统(UFS)的元数据结构,以克服MINIX文件系统性能不佳的问题。它是在linux上,第一个利用虚拟文件系统实现出的文件系统,在linux核心0.96c版中首次加入支持,最大可支持2GB的文件系统。目前的最新版本为5.0,于2014年6月22日发布。

EXT它是专门为Linux设计的,拥有最快的速度和最小的CPU占用率。
Linux作为自由软件,赢得了许多用户,其磁盘分区格式一种是Linux Native主分区,另一种是Linux Swap交换分区,并且主分区和交换分区都采用同一种格式,既Native和Swap格式。
这两种分区格式的安全和稳定性相当好,使用Linux操作系统死机的机会将大大减少。但是,目前支持这类分区格式的操作系统也有Linux和Android。

——百度百科

FAT

FAT是文件配置表(英语:File Allocation Table,首字母缩略字:FAT),是一种由微软发明并拥有部分专利的文件系统,供MS-DOS使用,也是所有非NT核心的微软窗口使用的文件系统。
FAT文件系统考虑当时电脑性能有限,所以未被复杂化,因此几乎所有个人电脑的操作系统都支持。这特性使它成为理想的软盘和存储卡文件系统,也适合用作不同操作系统中的数据交流。现在,一般所讲的FAT专指FAT32。
但FAT有一个严重的缺点:当文件删除后写入新数据,FAT不会将文件整理成完整片段再写入,长期使用后会使文件数据变得逐渐分散,而减慢了读写速度。碎片整理是一种解决方法,但必须经常重组来保持FAT文件系统的效率。

——百度百科

FAT16

FAT(File Allocation Table)是“文件分配表”的意思。顾名思义,就是用来记录文件所在位置的表格,它对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了。不同的操作系统所使用的文件系统不尽相同,在个人计算机上常用的操作系统中,MS-DOS 6.x及以下版本使用FAT16。操作系统根据表现整个磁盘空间所需要的簇数量来确定使用多大的FAT。所谓簇就是磁盘空间的配置单位,就象图书馆内一格一格的书架一样。FAT16使用了16位的空间来表示每个扇区(Sector)配置文件的情形,故称之为FAT16。

——百度百科

FAT32

FAT32指的是文件分配表是采用32位二进制数记录管理的磁盘文件管理方式,因FAT类文件系统的核心是文件分配表,命名由此得来。FAT32是从FAT和FAT16发展而来的,优点是稳定性和兼容性好,能充分兼容Win 9X及以前版本,且维护方便。缺点是安全性差,且最大只能支持32GB分区,单个文件也只能支持最大4GB。

——百度百科

exFAT

exFAT(Extended File Allocation Table File System,扩展FAT,即扩展文件分配表)是Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。对于闪存,NTFS文件系统不适合使用,exFAT更为适用。对于磁盘则不太适用。

——百度百科

NTFS

NTFS(New Technology File System)是Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,提供长文件名、数据保护和恢复,能通过目录和文件许可实现安全性,并支持跨越分区。

——百度百科

磁盘管理命令

fdisk是一个磁盘管理命令,使用起来比较简单,它可用来查看/修改磁盘分区信息。

如果只是看磁盘信息,可以使用sudo fdisk -l

在这里插入图片描述

在终端上输入sudo fdisk /dev/sdb可以进入sdb的磁盘管理,同时终端会打印如下信息,提示所有可用操作。

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

比较常用的命令如下:

  • p 显示现有的分区
  • n 建立新的分区
  • t 更改分区类型
  • d 删除现有的分区
  • w 保存分区更改并退出
  • q 不保存退出

磁盘分区

接下来我们来对SD卡进行分区操作,我打算把SD卡(/dev/sdb)分成两个分区,并设置不同的文件系统。

首先,在sudo fdisk /dev/sdb进入磁盘管理的情况下输入p,查看磁盘分区情况,磁盘分区是以扇区为单位,一个扇区512字节,该SD卡总共有15603712个扇区。

在这里插入图片描述
输入d将分区/dev/sdb1删除,然后输入n新建一个分区,

在这里插入图片描述
按照提示分别输入分区选项,选择主分区,分区号为1,起始扇区为2048,由于我想把SD卡平分成两个分区,所以我的截止扇区=(最大扇区-起始扇区)/ 2,

在这里插入图片描述
再用同样的步骤,创建第二个分区,将SD卡剩余空间分配完,

在这里插入图片描述

最后记得一定要保存后再退出,虽然此时分区制作完成,但这两个分区还不能使用,因为还没进行格式化(没有文件系统)。

磁盘格式化

Linux下的格式化命令是mkfs,它能格式化的系统包括:

在这里插入图片描述

sudo mkfs.ntfs /dev/sdb1可以把/dev/sdb1分区格式化为 NTFS 文件系统(竟然用了十几分钟,太慢了。。。)

在这里插入图片描述

此时SD卡的1分区已经是NTFS文件系统了。

在这里插入图片描述

同样的步骤,我将第二分区改为FAT32(VFAT)文件系统,这次很快,格式化前,(如果分区已经有文件系统且被挂载)一定要先取消挂载。

在这里插入图片描述

继续用sudo fdisk -l,发现二号分区并没有变化(但其实已经是FAT32系统了)

在这里插入图片描述

使用parted命令也可以查看文件系统类型。

在这里插入图片描述

挂载/卸载磁盘

磁盘分区只有挂载后才能使用,一般的发行版Linux都会有自动挂载功能,比如Ubuntu将外部磁盘挂载到了/media目录下,

在这里插入图片描述

我们也可以使用mount命令进行手动挂载,挂载之前,如果目标分区已经被其他目录挂载,需要使用umonut进行卸载,下图我使用sudo mount -t ntfs /dev/sdb1 /mnt/将/dev/sd1分区挂载到了/mnt目录下(个人习惯不加-t参数,但是不知道有什么后果)。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140404.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 中国移动校园WLAN客户端及使用方法「建议收藏」

    中国移动校园WLAN客户端及使用方法「建议收藏」学校终于覆盖了移动WLAN,坑爹的是信息中心没有给任何使用说明,给很多同学使用造成了障碍,现在把使用方法做一个简单的总结。文章中软件打包下载:http://pan.baidu.com/share/l

  • layui单选框未显示的问题

    layui单选框未显示的问题一开始还没导入idea的时候,单纯点击一个网页是有显示出来的,当我把这个带有单选框的网页放到idea的项目中去的时候,发现单选框没显示出来。1.首先在确认js.css等东西有导入,和之前的网页也没有什么区别2.网上查询之后,解释:有些时候,你的有些表单元素可能是动态插入的。这时form模块的自动化渲染是会对其失效的。虽然我们没有双向绑定机制(因为我们叫经典模块化框架,偷笑.gif)但…

  • 手撕包菜_handlecpuacceleration

    手撕包菜_handlecpuaccelerationLinkedHashSet能够维护元素插入集合的顺序,在遍历时,按照此顺序进行遍历。LinkedHashSet继承了HashSet类,实现了Set等接口。LinkedHashSet仍然支持null元素,唯一有所区别的是在迭代时,它能够按照元素的插入顺序遍历。LinkedHashSet的实现非常简单,它仅仅只重新实现了构造方法,将HashSet内部维护的HashMap…

    2022年10月12日
  • Python模拟一个用户登录系统

    Python模拟一个用户登录系统题目:模拟一个用户登录系统,用户输入用户名和密码,输入正确即可进入系统直接上代码:#模拟一个用户登录系统,用户输入用户名和密码,输入正确即可进入系统d=[‘yao’,’123456′]while1:name=input("请输入用户名:")ifnameind:breakelse:print("你输入的用户名不存在,请…

  • ScriptManager.RegisterStartupScript()方法

    ScriptManager.RegisterStartupScript()方法如果页面中不用Ajaxcs中运行某段js代码方式可以是:Page.ClientScript.RegisterStartupScript(Page.GetType(),””,”window.open(‘default2.aspx’)”);如果页面中使用了Ajax则上述代码即使执行也无效果。对这种情况我们通常采用:ScriptManager.RegisterStartupScr

  • mysql主从和mycat读写分离的安装及验证「建议收藏」

    mysql主从和mycat读写分离的安装及验证「建议收藏」mysql主从和mycat读写分离的安装及验证

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号