
正文
linux下给U盘分区&制作文件系统
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
这几天读到TLCL-Storage Media一节,不由的想要折腾一下U盘,一直以来U盘只是被拿来暂存数据,其内部有没有文件系统,数据怎么管理,那是从来也不清楚,本文就依葫芦画瓢,折腾下手中的Kingston U盘
注:本文非教程,仅学以致乐。
初探
先看看U盘接受windows格式化以后的样子,这应该是我们对付U盘最常用的一招:一言不合,格之。
不同于Ubuntu/Win等桌面发行版本,服务器型(非图形化的系统?)的linux系统通常不主动挂载U盘,因此当U盘插入树莓派后,命令行是不会有任何提示的,那我们如何知道U盘是否被系统所识别呢?
那就只能查看系统日志信息了,当有硬件设备被系统识别时,是会在日志中留下痕迹的,两种查看方式:
直接翻看最末尾的日志缓存

使用日志命令查看最后输出的信息

可以看到,系统识别出来了Kingston U盘,并识别为文件sda,该文件内只有一个磁盘分区为sda1.
除了查看日志以外,由于插入的是USB设备,还可以使用lsusb/lsblk来查看设备信息,U盘拔插前后,会发现
是新增的blk,对应的就是Kingston U盘。

图中的sda只是系统识别到的一个设备文件,但并没有挂载在系统的目录树中,默认不可访问,我们可以使用fdisk来详细的查看sda的文件信息。

采用dos分区表,即MBR,文件系统为fat32,单个分区,最小扇区为512字节。
创建分区初始化分区表
进行分区的前提是磁盘已经有了分区表,考虑到MBR已经是非常古老的分区表,此处尝试在U盘上使用新的GPT分区表:

在gdisk命令模式下,输入o指令,删除磁盘上的所有分区,并将U盘默认的msdos分区表改为gpt分区表,此时再输入p指令,磁盘中已没有分区信息。
注:图中有行提示信息:
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): Y
有的旧MBR工具无法识别新的GPT分区表,为防止被当作未分区盘,在磁盘前面创建受保护的MBR以跳过MBR工具的误识别。
创建子分区
此处依葫芦画瓢,参照《鸟哥的linux私房菜》第七章,创建三个子分区,类型分别为 8300 Linux filesystem/0700 Microsoft basic data/8200 Linux swap.
创建第一个分区:

因为磁盘无任何分区,第一次创建,默认为分区1,起始扇区号选择默认,终止扇区选择5G空间的地址扇区,类型默认为linux文件系统。
继续创建第二个分区:

此时默认为分区2,起始扇区号选择默认(即分区1后的第一个扇区),终止扇区选择9G空间的地址扇区,类型通过L指令查询后,选择为Windows文件系统。
最后创建第三个分区:

创建完成后,U盘此时的分区表现如下:

除了形态上为一个U盘,磁盘分区划分是不是很像电脑内置磁盘。
最后,别忘了输入w保存设置。
再使用lsblk查看下我们的磁盘的新划分情况

此时磁盘的三个分区已经被系统检测到,但是默认依然未挂载,所以第四列的MOUNTPOINT为空。
创建文件系统
写在前面:创建文件系统时,我曾试过在分区1创建vfat文件系统,且依然能够被系统正常识别,因此纳闷:创建分区时需要输入分区类型,而在分区上创建文件系统时,也需要指定文件系统类型,这两者有啥关联影响?
截取一段网友的回复,个人认为解释的比较合理。

为分区1创建xfs文件系统

当前使用的raspberry 系统默认不支持创建xfs类型,需先安装xfs工具 sudo apt install xfsprogs
为分区2创建vfat文件系统

为分区3创建swap分区

创建swap分区就得用mkswap命令来创建了。
挂载U盘分区
分区创建好,文件系统创建好,接下来就需要将分区挂载在系统目录上了,这样才能对磁盘进行数据访问。
文件系统挂载

先创建两个空文件夹,然后使用mount命令挂载,最后使用df(device free)命令查看挂载的设备信息详情。
此时我们就可以对分区进行数据读取操作了,在应用层看来,flash/u1 flash/u2只是两个普通文件夹,并不需要关心其背后关联的是U盘的两个分区。
swap分区挂载

swap分区还是特立独行,使用独有的命令进行操作。
小测试-比较分区数据的传输速率
本测试使用强大的dd命令,大致测试手段为:拷贝一个256MB的文件到分区中,比较两个不同文件系统分区的传输速率。

初略来看,使用mkfs的默认配置创建的两个分区中,xfs在此kingston U盘上的表现要优于vfat。
linux下给U盘分区&制作文件系统的更多相关文章- linux下挂载U盘
转:http://www.cnblogs.com/yeahgis/archive/2012/04/05/2432779.html linux下挂载U盘 一.Linux挂载U盘: 1.插入u盘到计算机, ...
- 实现Linux下的U盘(USB Mass Storage)驱动
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Cri ...
- 如何实现Linux下的U盘(USB Mass Storage)驱动
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Cri ...
- (转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步
Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80 ...
- 怎样在linux下对U盘进行格式化和分区
说明,为了不做无用功,首先必须卸载要分区的设备,分区才能执行成功.通过命令umount /media/?? 或者umount /mnt/??? 看你的实际情况,这一步必不可少.1.首先通过命令fdis ...
- Linux磁盘及文件系统(二)Linux下磁盘命名和分区
在为主机添加硬盘之前,首先需要了解Linux系统下对硬盘和分区的命令方法 一.磁盘命名 Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb....以此类推. ...
- linux下转换U盘文件系统
打算在windows 7 下复制一个12G 的文件至U盘,无奈U盘为FAT32格式,最大支持移动4G 的文件,只能将U盘文件系统格式化为NTFS.windows 7系统出现问题,转化中总是出现错误.故 ...
- 【Linux】扩展阿里云数据盘分区和文件系统
扩容云盘只是扩大存储容量,不会扩容文件系统 一.准备工作 在扩展数据盘扩展分区和文件系统前,请提前完成以下工作. 创建快照以备份数据,防止操作失误导致数据丢失. 通过ECS控制台或者API扩容云盘容量 ...
- 【转发】Linux下如何查看当前支持的文件系统及各分区的文件系统类型
Linux下查看当前内核系统支持的文件系统: 一般都在 /lib/modules/kernl-version/kernel/fs/ 目录下包含了当前内核版本支持的文件系统: ls /lib/modul ...
随机推荐- SSH邮箱验证与激活
下面是我写的email验证和激活: 自己瞎写的,能用,不喜欢勿喷 action中regist方法中代码 /** * * 发送邮件的方法 */ StringBuffer sb=new StringBuf ...
- jquery重置html form
很多时候在ajax提交或者对话框隐藏之后,我们希望重置默认值以便下次打开对话框时保持干净. 因为jquery选择器返回的是list,并且没有对此提供reset方法,所以需要针对单个元素进行reset. ...
- OidView
http://www.oidview.com/mibs/0/HOST-RESOURCES-V2-MIB.html
- sqlserver2012
sqlserver2012作死的节奏啊,微软最近怎么了?搞个sqlserver2012死活安装不上,无论如何都是.NET Framework 4报错,机器本身的版本比安装包的高就报错?微软的程序员思维 ...
- Paying for upgrades, by Bob Arnson
Following content is reprinted from here, please go to the original website for more information. Au ...
- cf B. Little Dima and Equation
http://codeforces.com/contest/460/problem/B import java.util.*; import java.math.*; public class Mai ...
- jQuery EasyUI combobox多选和赋值
定义select <select id="ID" name=empVO.acunid class="easyui-combobox" required=& ...
- 列求key出现的频率
1 cat mc.log | grep LOGIN_GET | awk '{print $9}' | sort | uniq -c
- 最近纠结致死的一个java报错java.net.SocketException: Connection reset 终于得到解决
自从SEOTcs系统11月份24日更新了一下SEO得分算法以来,一直困扰我的一个问题出现了,java的数据job任务,在执行过程中会经常报以下的错误: “2011-12-03 18:00:32 Def ...
- 新人报道~cnblogs
我的名字:杨先生 我的英文名:Allen 和你们一样,是一名程序猿,专业技能 C#.前端小块.
转:http://www.cnblogs.com/yeahgis/archive/2012/04/05/2432779.html linux下挂载U盘 一.Linux挂载U盘: 1.插入u盘到计算机, ...
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Cri ...
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Cri ...
Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80 ...
说明,为了不做无用功,首先必须卸载要分区的设备,分区才能执行成功.通过命令umount /media/?? 或者umount /mnt/??? 看你的实际情况,这一步必不可少.1.首先通过命令fdis ...
在为主机添加硬盘之前,首先需要了解Linux系统下对硬盘和分区的命令方法 一.磁盘命名 Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb....以此类推. ...
打算在windows 7 下复制一个12G 的文件至U盘,无奈U盘为FAT32格式,最大支持移动4G 的文件,只能将U盘文件系统格式化为NTFS.windows 7系统出现问题,转化中总是出现错误.故 ...
扩容云盘只是扩大存储容量,不会扩容文件系统 一.准备工作 在扩展数据盘扩展分区和文件系统前,请提前完成以下工作. 创建快照以备份数据,防止操作失误导致数据丢失. 通过ECS控制台或者API扩容云盘容量 ...
Linux下查看当前内核系统支持的文件系统: 一般都在 /lib/modules/kernl-version/kernel/fs/ 目录下包含了当前内核版本支持的文件系统: ls /lib/modul ...
- SSH邮箱验证与激活
下面是我写的email验证和激活: 自己瞎写的,能用,不喜欢勿喷 action中regist方法中代码 /** * * 发送邮件的方法 */ StringBuffer sb=new StringBuf ...
- jquery重置html form
很多时候在ajax提交或者对话框隐藏之后,我们希望重置默认值以便下次打开对话框时保持干净. 因为jquery选择器返回的是list,并且没有对此提供reset方法,所以需要针对单个元素进行reset. ...
- OidView
http://www.oidview.com/mibs/0/HOST-RESOURCES-V2-MIB.html
- sqlserver2012
sqlserver2012作死的节奏啊,微软最近怎么了?搞个sqlserver2012死活安装不上,无论如何都是.NET Framework 4报错,机器本身的版本比安装包的高就报错?微软的程序员思维 ...
- Paying for upgrades, by Bob Arnson
Following content is reprinted from here, please go to the original website for more information. Au ...
- cf B. Little Dima and Equation
http://codeforces.com/contest/460/problem/B import java.util.*; import java.math.*; public class Mai ...
- jQuery EasyUI combobox多选和赋值
定义select <select id="ID" name=empVO.acunid class="easyui-combobox" required=& ...
- 列求key出现的频率
1 cat mc.log | grep LOGIN_GET | awk '{print $9}' | sort | uniq -c
- 最近纠结致死的一个java报错java.net.SocketException: Connection reset 终于得到解决
自从SEOTcs系统11月份24日更新了一下SEO得分算法以来,一直困扰我的一个问题出现了,java的数据job任务,在执行过程中会经常报以下的错误: “2011-12-03 18:00:32 Def ...
- 新人报道~cnblogs
我的名字:杨先生 我的英文名:Allen 和你们一样,是一名程序猿,专业技能 C#.前端小块.







