linux下U盘状态检测

Linux的文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中。如果没有umount就非法拔出U盘,程序是不知道的,fopen,fwrite等函数都依然返回正确,知道操作系统要把写介质的时候,才会提示I/O错误。可是很多数据都会因为这个不及时的错误报告而丢失。
    事实上,USB驱动程序在U盘插入和拔出时,都对系统配置文件做了修改。
    例如U盘驱动程序会在插入或拔出时往 /proc/scsi/usb-storage-0/0 里面记上 Attached:Yes or No
    通过查看这个文件就不难检测U盘是否插入或拔出了。

    注意:U盘是否插入的状态与是否挂载(mount)无关。

 

当然这也不是唯一的方法检测u盘的状态。根据内核的设置情况,也可能没有/proc/scsi目录,但是/sys目录下面会有usb的目录,插拔u盘,目录会自动创建和消失,如果上面的方法不可行,那么可以通过检测这些目录来判断u盘或者sd卡等存储设备的存在状态,/sys/目录下找到相关的usb或者sd卡的目录,里面有更详细的设备信息,包括设备出厂id,传输速度,容量等。

时间: 2024-12-26 17:18:15

linux下U盘状态检测的相关文章

linux下u盘使用的两种方法

  下面给大家介绍一下linux下u盘如何使用,主要是从两个方案中进行介绍.希望对大家的学习有帮助. 方案一: Linux不像Windows一样,接上新硬件后可以自动识别,在Linux下无法自动识别新硬件的,需要手动去识别.USB移动存储设备通常被识别为sda1,具体可以通过fdisk -l命令查询. 在使用U盘前,我们先要为外挂点新建一个子目录,一般外挂点的子目录都是建立在/mnt里面的,我们也建在那里,当然也可以建在/目录下,名字可以自己定,我们就取名为usb,终端下的命令如下: mkdir

在linux下u盘如何使用

  在linux下u盘如何使用呢?在这里给大家介绍一下: 一:Linux不像Windows一样,接上新硬件后可以自动识别,在Linux下无法自动识别新硬件的,需要手动去识别.USB移动存储设备通常被识别为sda1,具体可以通过fdisk -l命令查询. 在使用U盘前,我们先要为外挂点新建一个子目录,一般外挂点的子目录都是建立在/mnt里面的,我们也建在那里,当然也可以建在/目录下,名字可以自己定,我们就取名为usb,终端下的命令如下: mkdir /mnt/usb 然后我们就可以接上我的U盘了,

Linux下U盘使用技巧

  在这里给大家介绍一下linux下u盘如何使用,主要是从两个方案中进行介绍.希望对大家的学习有帮助. 方案一: Linux不像Windows一样,接上新硬件后可以自动识别,在Linux下无法自动识别新硬件的,需要手动去识别.USB移动存储设备通常被识别为sda1,具体可以通过fdisk -l命令查询. 在使用U盘前,我们先要为外挂点新建一个子目录,一般外挂点的子目录都是建立在/mnt里面的,我们也建在那里,当然也可以建在/目录下,名字可以自己定,我们就取名为usb,终端下的命令如下: mkdi

解决Linux下U盘乱码的方法

  轻松解决Linux下U盘乱码的方法: 1.一般用这条命令: mount -o iocharset=utf8 /dev/sdb /tmp/fat 2.如若不行可试如下命令: mount /dev/sdb /mnt -t vfat -o codepage=936,iocharset=utf8 mount /dev/sdb /mnt -t vfat -o iocharset=utf8 mount /dev/sdb /mnt -t vfat -o codepage=936,iocharset=gb2

Linux下查看SELinux状态和关闭SELinux的方法

Linux下查看SELinux状态和关闭SELinux的方法  一.查看SELinux状态命令: 1./usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态 SELinux status:                 enabled 2.getenforce                 ##也可以用这个命令检查 二.关闭SELinux方法: 1.临时关闭(不用重启机器): 代码如下: setenforce 0 #设置SE

linux下绿盘的4k分区和格式化

以下是linux下绿盘的4k分区和格式化方法: 分区: fdisk -H 224 -S 56 -u /dev/sda 格式化方法是: mkfs.ext3 -b 4096 /dev/sda1 这是一个大分区的方法,至于怎样分小区,还没有试过.  

Linux下U盘病毒删除不了的解决方法

  在Linux下使用U盘时,每次都看到一个什么auto之类的文件,怀疑是一个病毒. 但输入ls -l命令发现,属性竟然全不是? 结果是删不掉了. 经过多方查询得知原因是linux不能处理以"."结尾的文件.所以在这个地方不能删除. 不过解决的办法是有的. 方法如下: 如果你是系统自动挂载U盘,请先umount 然后,输入如下: sudo mount -t msDos /dev/sd* /media/disk 这里和默认不同的是 -t参数从vfat 变成msdos.因为vfat是针对f

linux下D盘(适用于U盘、硬盘等一切移动存储设备)策略(比格式化猛,因为是不可恢复!)

关于这样的资料,在百度上还是比较少的,今天就共享出来,在电脑主机上插上你的U盘,输入以下命令: dd if=/dev/zero of=/dev/sdb  bs=1024 count=102400   然后就等着你的U盘所有资料全部销毁变成一个彻彻底底的空盘吧! dd这个命令是linux用指定的大小的块拷贝一个文件,并在拷贝的同时进行指定的转换.    参数介绍: 1. if=文件名:输入文件名,缺省为标准输入.即指定源文件.< if=input file > 2. of=文件名:输出文件名,缺

Linux下使用socktop来检测socket的通讯状况

所有的socket通讯都是通过socket接口来的,任何family的通讯包括unix域套接都要走的,所以只要截获了socket 读写的几个syscall 就可以了解unix域套接字的发送和接受情况.systemtap发行版本提供了个工具socktop, 位于 /usr/share/doc/systemtap/examples/network/socktop, 是个非常方便的工具, 干这个事情最合适了.安装为了部署 SystemTap,需要安装以下两个 RPM 包: 代码如下:systemtap