博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
How to determine the filesystem of an unmounted device?
阅读量:4286 次
发布时间:2019-05-27

本文共 3962 字,大约阅读时间需要 13 分钟。

轉載自 

There are multiple ways to get this information. Most of them require you to parse the output of another command.

  • Run # fdisk /dev/sdX -l to get a basic idea of the filesystem structure. The output is something like this:

    Disk /dev/sda: 320.1 GB, 320072933376 bytes, 625142448 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x9f7685a8   Device Boot      Start         End      Blocks   Id  System/dev/sda1              63      289169      144553+  83  Linux/dev/sda2          289170   459121634   229416232+  83  Linux/dev/sda3       459121635   461129759     1004062+  82  Linux swap / Solaris/dev/sda4   *   461129760   625142447    82006344    7  HPFS/NTFS/exFAT

    But this will only tell you the partition type.

  • You could also use # blkid to get the following output:

    /dev/sda1: LABEL="boot" UUID="aa84c5a8-6408-4952-b577-578f2a67af86" TYPE="ext2" /dev/sda2: LABEL="root" UUID="a430e0ef-fd35-432f-8b9a-75a49b89ad8a" TYPE="ext4" /dev/sda3: LABEL="swap" UUID="e388806a-dc27-4f4e-a136-3d1ff4e53962" TYPE="swap" /dev/sda4: UUID="088E027A8E026114" TYPE="ntfs"
  • Also, for a well formatted output, you could run # parted /dev/sdX -l for the following output:

    Model: ATA WDC WD3200BEVT-7 (scsi)Disk /dev/sda: 320GBSector size (logical/physical): 512B/512BPartition Table: msdosDisk Flags: Number  Start   End    Size    Type     File system     Flags 1      32.3kB  148MB  148MB   primary  ext2 2      148MB   235GB  235GB   primary  ext4 3      235GB   236GB  1028MB  primary  linux-swap(v1) 4      236GB   320GB  84.0GB  primary  ntfs            boot
  • $ df -T. This is another command that does not require super user privileges to execute. However, this will report for every mount point

    Filesystem     Type     1K-blocks     Used Available Use% Mounted onrootfs         rootfs   225815276 99381340 114963128  47% /dev            devtmpfs   1538396        0   1538396   0% /devrun            tmpfs      1541260      416   1540844   1% /run/dev/sda2      ext4     225815276 99381340 114963128  47% /tmpfs          tmpfs      1541260      360   1540900   1% /dev/shmtmpfs          tmpfs      1541260        0   1541260   0% /sys/fs/cgrouptmpfs          tmpfs      1541260      900   1540360   1% /tmp/dev/sda1      ext2        139985    30386    102372  23% /boot/dev/sda4      fuseblk   82006340 79676036   2330304  98% /mnt

Another command that can come handy is # file -sL /dev/sdXY. This has one downside in that it does not work with the full block device. Requires the exact device to be passed. The output is quite neat though:

/dev/sda1: Linux rev 1.0 ext2 filesystem data (mounted or unclean), UUID=aa84c5a8-6408-4952-b577-578f2a67af86, volume name "boot"

All of these will always be output to stdout. You can parse them in a script if required.

 


(eval $(blkid $DEV | awk ' { print $3 } '); echo $TYPE) will do, thanks! (The outer parantheses are only necessary if TYPE is already used elsewhere and shall not be changed) –   


df -T will claim tmpfs for any loopdevice it seems, and fdisk -l doesn't appear to list a type when applied to a partition itself, while parted ignores the device for me and file -syields the wrong format for a luks encrypted device. But blkid works perfectly, even for a loop device or the image file itself –   


That behavior is expected out of df -T and fdisk -l. However, I don't understand how parted ignores the complete block device. –   


That may be due to the linux I tried to run this on (it's a custom distro on a Buffalo LinkStation NAS device) Btw, even better solution:  – 


@TobiasKienzler Instead of eval, you could use . <(blkid -pi /dev/sdXN) – 


@F.Hauri Good point, I didn't know about <(...) back then though. And of course the blkid -i value -s TYPE $DEV is even better... – 


#lsblk -f would also help at least it returns every mounted or unmount block devices. – 


None of these work with NFS mountpoints. – 

转载地址:http://dzpgi.baihongyu.com/

你可能感兴趣的文章
C# 托管资源 与 非托管资源
查看>>
C#析构函数
查看>>
C#IDisposable 接口&资源释放
查看>>
cssnext简介
查看>>
PostCss简介
查看>>
比较全的前端整理
查看>>
C# lock关键词/lock语句块、线程锁
查看>>
EF TransactionScope异常:分布式事务已完成。请将此会话登记到新事务或 NULL 事务中。
查看>>
EF 多线程TransactionScope事务异常"事务(进程 ID 58)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。"
查看>>
TransactionScope线程安全问题整理
查看>>
关于EF上线文异常问题整理
查看>>
AngularJS路由之ui-router(三)大小写处理
查看>>
AngularJs checkbox绑定
查看>>
C# 扩展方法整理
查看>>
微信小程序开源项目库整理
查看>>
Ionic Grid栅格布局居中实例
查看>>
VS生成Cordova for Android应用之Gradle
查看>>
Cordova 配置WebView可以打开外部链接
查看>>
Ionic Tab选项卡使用整理(一)
查看>>
Ionic Tab选项卡使用整理(二)
查看>>