Linux下u盘分区 转载半遮雨

Linux:

U盘删除分区:


 
 
  1. #fdisk /dev/sdb /*进入fdisk命令操作空间*/
  2. #Command (m for help): m /*命令查看*/
  3. Command action
  4. a toggle a bootable flag #设置引导扇区
  5. b edit bsd disklabel #编辑卷标(linux下使用的卷标bsd通用)
  6. c toggle the dos compatibility flag
  7. d delete a partition #删除分区
  8. l list known partition types #列出已知的分区类型
  9. m print this menu
  10. n add a new partition #添加一个新的分区
  11. o create a new empty DOS partition table #生成一个新的空DOS分区列表
  12. p print the partition table #打印分区列表
  13. q quit without saving changes #不保存退出
  14. s create a new empty Sun disklabel
  15. t change a partition 's system id #改变一个分区列表的ID
  16. u change display/entry units
  17. v verify the partition table
  18. w write table to disk and exit #写入列表到磁盘并退出
  19. x extra functionality (experts only)
  20. #Command (m for help): p
  21. Disk /dev/sdb: 2055 MB, 2055208960 bytes
  22. 64 heads, 62 sectors/track, 1011 cylinders
  23. Units = cylinders of 3968 * 512 = 2031616 bytes
  24. Disk identifier: 0x00000000
  25. Device Boot Start End Blocks Id System
  26. /dev/sdb1 1 133 263871+ 6 FAT16
  27. /dev/sdb2 * 134 200 132928 83 Linux /*boot 分区*/
  28. #Command (m for help): d
  29. #Partition number ( 1 -4): 1
  30. #Command (m for help): p
  31. Disk /dev/sdb: 2055 MB, 2055208960 bytes
  32. 64 heads, 62 sectors/track, 1011 cylinders
  33. Units = cylinders of 3968 * 512 = 2031616 bytes
  34. Disk identifier: 0x00000000
  35. Device Boot Start End Blocks Id System
  36. /dev/sdb2 * 134 200 132928 83 Linu
  37. #Command (m for help): d
  38. Selected partition 2
  39. #Command (m for help): p /*查看此时已无分区*/
  40. Disk /dev/sdb: 2055 MB, 2055208960 bytes
  41. 64 heads, 62 sectors/track, 1011 cylinders
  42. Units = cylinders of 3968 * 512 = 2031616 bytes
  43. Disk identifier: 0x00000000
  44. Device Boot Start End Blocks Id System
  45. #Command (m for help): w /*最后写入分区表*/
  46. The partition table has been altered!
  47. Calling ioctl() to re-read partition table.
  48. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
  49. The kernel still uses the old table.
  50. The new table will be used at the next reboot.
  51. Syncing disks.

U盘不分区直接格式化:


 
 
  1. /* 在整个/dev/sdb设备上建立文件系统 */
  2. #sudo mkfs -t vfat -I /dev/sdb1 /*在整个/dev/sdb设备上建立文件系统*/

U盘分区并格式化:


 
 
  1. /*给磁盘增加一分区并格式化*/
  2. #Command (m for help): n
  3. Command action
  4. e extended
  5. p primary partition ( 1 -4)
  6. :p /*增加主分区*/
  7. Partition number ( 1 -4): 1
  8. First cylinder ( 1 -1011, default 1): /*回车默认*/
  9. Using default value 1
  10. Last cylinder, +cylinders or + size{K,M,G} ( 1 -1011, default 1011): /*回车默认*/
  11. Using default value 1011
  12. #Command (m for help): p /*此时有sdb1分区*/
  13. Disk /dev/sdb: 2055 MB, 2055208960 bytes
  14. 64 heads, 62 sectors/track, 1011 cylinders
  15. Units = cylinders of 3968 * 512 = 2031616 bytes
  16. Disk identifier: 0x00000000
  17. Device Boot Start End Blocks Id System
  18. /dev/sdb1 1 1011 2005793 83 Linux
  19. #Command (m for help): w /*最后写入分区表*/
  20. The partition table has been altered!
  21. Calling ioctl() to re- read partition table.
  22. Syncing disks.
  23. #sudo mkfs -t vfat /dev/sdb1 /*分区完成后格式化*/

格式化完成后, 使用U盘之前需要修复一下,修复命令: fsck -t vfat /dev/sdb

				<script>
					(function(){
						function setArticleH(btnReadmore,posi){
							var winH = $(window).height();
							var articleBox = $("div.article_content");
							var artH = articleBox.height();
							if(artH > winH*posi){
								articleBox.css({
									'height':winH*posi+'px',
									'overflow':'hidden'
								})
								btnReadmore.click(function(){
									articleBox.removeAttr("style");
									$(this).parent().remove();
								})
							}else{
								btnReadmore.parent().remove();
							}
						}
						var btnReadmore = $("#btn-readmore");
						if(btnReadmore.length>0){
							if(currentUserName){
								setArticleH(btnReadmore,3);
							}else{
								setArticleH(btnReadmore,1.2);
							}
						}
					})()
				</script>
				</article>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux读取U盘或者移动硬盘序列号并获取U盘或者移动硬盘分区名。基本原理如下: 当有外置 USB 插入的时候,会产生 /proc/scsi/usb-storage 目录,并在其中产生数字文件(形如 1 2 3 4),此文件存储了设备相关信息。 相应的 /sys/class/scsi_device/ 目录中会有 scsi 设备的目录(ide 硬盘默认无子目录,sata硬盘默认有子目录),以数字开头(形如 1:0:0:0 2:0:0:0) 这个数字与前面 /proc/scsi/usb-storage目录中的相对应,子目录表示sata硬盘。比如 /sys/class/scsi_device/2:0:0:0/device/block 中有USB设备,从该目录下得到U盘或者移动硬盘的分区名,比如sda1。 该demo实现了上述过程,先检查 /proc/scsi/usb-storage 目录,看是否有u盘或者移动硬盘接入,如果有则读取u盘或者移动硬盘的序列号,然后在/sys/class/scsi_device/目录下逐级查找,直到找到u盘或者移动硬盘的分区。 完整代码,可直接编译和测试,嵌入式环境下也是适应的。 在linux测试如下,id表示序列号,sdb1表示是分区名称: # ./a.out udisk dev num:0 udisk id:055CE21B ret:0 dev num:0 found dir:0:0:0:1 found dev dir:0:0:0:1,full path:/sys/class/scsi_device/0:0:0:1 sub founction found dir:sda found sd device dir:sda,full path:/sys/class/scsi_device/0:0:0:1/device/block/sda found dir:0:0:0:2 found dev dir:0:0:0:2,full path:/sys/class/scsi_device/0:0:0:2 sub founction found dir:sdb found sd device dir:sdb,full path:/sys/class/scsi_device/0:0:0:2/device/block/sdb found sd sub device dir:sdb1 found dir:0:0:0:0 found dev dir:0:0:0:0,full path:/sys/class/scsi_device/0:0:0:0 sub funciton Open Directory /sys/class/scsi_device/0:0:0:0/device/block Error:No such file or directory get name return:0,disk name:sdb1 # 因为有的USB设备会有好几个,比如把CD和U盘集成到一起,就会出现上面的情况,有多个子目录去查找。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值