From ad6c3f60a7b1508f5b567ff61b2cf2da36d4c65a Mon Sep 17 00:00:00 2001 From: Shirou WAKAYAMA Date: Fri, 14 Aug 2015 18:08:43 +0900 Subject: [PATCH 1/3] disk[freebsd,darwin,windows]: add fstype to DiskUsageStat. --- disk/disk.go | 1 + disk/disk_darwin.go | 4 +++ disk/disk_freebsd.go | 4 +++ disk/disk_linux.go | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++ disk/disk_test.go | 3 +- disk/disk_unix.go | 2 +- 6 files changed, 101 insertions(+), 2 deletions(-) diff --git a/disk/disk.go b/disk/disk.go index fc2f796..0aa26cd 100644 --- a/disk/disk.go +++ b/disk/disk.go @@ -6,6 +6,7 @@ import ( type DiskUsageStat struct { Path string `json:"path"` + Fstype string `json:"fstype"` Total uint64 `json:"total"` Free uint64 `json:"free"` Used uint64 `json:"used"` diff --git a/disk/disk_darwin.go b/disk/disk_darwin.go index 3aa85c8..095bbda 100644 --- a/disk/disk_darwin.go +++ b/disk/disk_darwin.go @@ -98,3 +98,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { } return } + +func getFsType(stat syscall.Statfs_t) string { + return common.IntToString(stat.Fstypename[:]) +} diff --git a/disk/disk_freebsd.go b/disk/disk_freebsd.go index 56aa14f..6e1df23 100644 --- a/disk/disk_freebsd.go +++ b/disk/disk_freebsd.go @@ -171,3 +171,7 @@ func parseDevstat(buf []byte) (Devstat, error) { return ds, nil } + +func getFType(stat syscall.Statfs_t) string { + return common.IntToString(stat.Fstypename[:]) +} diff --git a/disk/disk_linux.go b/disk/disk_linux.go index 2ec2fcb..ab3d6e4 100644 --- a/disk/disk_linux.go +++ b/disk/disk_linux.go @@ -7,6 +7,7 @@ import ( "os/exec" "strconv" "strings" + "syscall" common "github.com/shirou/gopsutil/common" ) @@ -14,6 +15,85 @@ import ( const ( SectorSize = 512 ) +const ( + // magic.h + ADFS_SUPER_MAGIC = 0xadf5 + AFFS_SUPER_MAGIC = 0xADFF + BEFS_SUPER_MAGIC = 0x42465331 + BFS_MAGIC = 0x1BADFACE + CIFS_MAGIC_NUMBER = 0xFF534D42 + CODA_SUPER_MAGIC = 0x73757245 + COH_SUPER_MAGIC = 0x012FF7B7 + CRAMFS_MAGIC = 0x28cd3d45 + DEVFS_SUPER_MAGIC = 0x1373 + EFS_SUPER_MAGIC = 0x00414A53 + EXT_SUPER_MAGIC = 0x137D + EXT2_OLD_SUPER_MAGIC = 0xEF51 + EXT2_SUPER_MAGIC = 0xEF53 + EXT3_SUPER_MAGIC = 0xEF53 + EXT4_SUPER_MAGIC = 0xEF53 + HFS_SUPER_MAGIC = 0x4244 + HPFS_SUPER_MAGIC = 0xF995E849 + HUGETLBFS_MAGIC = 0x958458f6 + ISOFS_SUPER_MAGIC = 0x9660 + JFFS2_SUPER_MAGIC = 0x72b6 + JFS_SUPER_MAGIC = 0x3153464a + MINIX_SUPER_MAGIC = 0x137F /* orig. minix */ + MINIX_SUPER_MAGIC2 = 0x138F /* 30 char minix */ + MINIX2_SUPER_MAGIC = 0x2468 /* minix V2 */ + MINIX2_SUPER_MAGIC2 = 0x2478 /* minix V2, 30 char names */ + MSDOS_SUPER_MAGIC = 0x4d44 + NCP_SUPER_MAGIC = 0x564c + NFS_SUPER_MAGIC = 0x6969 + NTFS_SB_MAGIC = 0x5346544e + OPENPROM_SUPER_MAGIC = 0x9fa1 + PROC_SUPER_MAGIC = 0x9fa0 + QNX4_SUPER_MAGIC = 0x002f + REISERFS_SUPER_MAGIC = 0x52654973 + ROMFS_MAGIC = 0x7275 + SMB_SUPER_MAGIC = 0x517B + SYSV2_SUPER_MAGIC = 0x012FF7B6 + SYSV4_SUPER_MAGIC = 0x012FF7B5 + TMPFS_MAGIC = 0x01021994 + UDF_SUPER_MAGIC = 0x15013346 + UFS_MAGIC = 0x00011954 + USBDEVICE_SUPER_MAGIC = 0x9fa2 + VXFS_SUPER_MAGIC = 0xa501FCF5 + XENIX_SUPER_MAGIC = 0x012FF7B4 + XFS_SUPER_MAGIC = 0x58465342 + _XIAFS_SUPER_MAGIC = 0x012FD16D +) + +var fsTypeMap = map[int64]string{ + AFFS_SUPER_MAGIC: "affs", + COH_SUPER_MAGIC: "coh", + DEVFS_SUPER_MAGIC: "devfs", + EXT2_OLD_SUPER_MAGIC: "old ext2", + EXT2_SUPER_MAGIC: "ext2", + EXT3_SUPER_MAGIC: "ext3", + EXT4_SUPER_MAGIC: "ext4", + HFS_SUPER_MAGIC: "hfs", + HPFS_SUPER_MAGIC: "hpfs", + ISOFS_SUPER_MAGIC: "isofs", + MINIX2_SUPER_MAGIC: "minix v2", + MINIX2_SUPER_MAGIC2: "minix v2 30 char", + MINIX_SUPER_MAGIC: "minix", + MINIX_SUPER_MAGIC2: "minix 30 char", + MSDOS_SUPER_MAGIC: "msdos", + NCP_SUPER_MAGIC: "ncp", + NFS_SUPER_MAGIC: "nfs", + NTFS_SB_MAGIC: "ntfs", + PROC_SUPER_MAGIC: "proc", + SMB_SUPER_MAGIC: "smb", + SYSV2_SUPER_MAGIC: "sysv2", + SYSV4_SUPER_MAGIC: "sysv4", + UFS_MAGIC: "ufs", + USBDEVICE_SUPER_MAGIC: "usb", + VXFS_SUPER_MAGIC: "vxfs", + XENIX_SUPER_MAGIC: "xenix", + XFS_SUPER_MAGIC: "xfs", + _XIAFS_SUPER_MAGIC: "xiafs", +} // Get disk partitions. // should use setmntent(3) but this implement use /etc/mtab file @@ -120,3 +200,12 @@ func GetDiskSerialNumber(name string) string { } return "" } + +func getFsType(stat syscall.Statfs_t) string { + t := stat.Type + ret, ok := fsTypeMap[t] + if !ok { + return "" + } + return ret +} diff --git a/disk/disk_test.go b/disk/disk_test.go index ca0f53d..690cc45 100644 --- a/disk/disk_test.go +++ b/disk/disk_test.go @@ -61,8 +61,9 @@ func TestDiskUsageStat_String(t *testing.T) { InodesUsed: 5000, InodesFree: 6000, InodesUsedPercent: 49.1, + Fstype: "ext4", } - e := `{"path":"/","total":1000,"free":2000,"used":3000,"used_percent":50.1,"inodes_total":4000,"inodes_used":5000,"inodes_free":6000,"inodes_used_percent":49.1}` + e := `{"path":"/","fstype":"ext4","total":1000,"free":2000,"used":3000,"used_percent":50.1,"inodes_total":4000,"inodes_used":5000,"inodes_free":6000,"inodes_used_percent":49.1}` if e != fmt.Sprintf("%v", v) { t.Errorf("DiskUsageStat string is invalid: %v", v) } diff --git a/disk/disk_unix.go b/disk/disk_unix.go index 31f25b9..f006c1a 100644 --- a/disk/disk_unix.go +++ b/disk/disk_unix.go @@ -10,11 +10,11 @@ func DiskUsage(path string) (*DiskUsageStat, error) { if err != nil { return nil, err } - bsize := stat.Bsize ret := &DiskUsageStat{ Path: path, + Fstype: getFsType(stat), Total: (uint64(stat.Blocks) * uint64(bsize)), Free: (uint64(stat.Bfree) * uint64(bsize)), InodesTotal: (uint64(stat.Files)), From 7fb126f1bfa725cf403ceb8e44c34ae6aa14784f Mon Sep 17 00:00:00 2001 From: Shirou WAKAYAMA Date: Fri, 14 Aug 2015 18:18:19 +0900 Subject: [PATCH 2/3] disk[linux]: fix fstype dup. --- disk/disk_linux.go | 127 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 77 insertions(+), 50 deletions(-) diff --git a/disk/disk_linux.go b/disk/disk_linux.go index ab3d6e4..4813665 100644 --- a/disk/disk_linux.go +++ b/disk/disk_linux.go @@ -17,61 +17,86 @@ const ( ) const ( // magic.h - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xADFF - BEFS_SUPER_MAGIC = 0x42465331 - BFS_MAGIC = 0x1BADFACE - CIFS_MAGIC_NUMBER = 0xFF534D42 - CODA_SUPER_MAGIC = 0x73757245 - COH_SUPER_MAGIC = 0x012FF7B7 - CRAMFS_MAGIC = 0x28cd3d45 - DEVFS_SUPER_MAGIC = 0x1373 - EFS_SUPER_MAGIC = 0x00414A53 - EXT_SUPER_MAGIC = 0x137D - EXT2_OLD_SUPER_MAGIC = 0xEF51 - EXT2_SUPER_MAGIC = 0xEF53 - EXT3_SUPER_MAGIC = 0xEF53 - EXT4_SUPER_MAGIC = 0xEF53 - HFS_SUPER_MAGIC = 0x4244 - HPFS_SUPER_MAGIC = 0xF995E849 - HUGETLBFS_MAGIC = 0x958458f6 - ISOFS_SUPER_MAGIC = 0x9660 - JFFS2_SUPER_MAGIC = 0x72b6 - JFS_SUPER_MAGIC = 0x3153464a - MINIX_SUPER_MAGIC = 0x137F /* orig. minix */ - MINIX_SUPER_MAGIC2 = 0x138F /* 30 char minix */ - MINIX2_SUPER_MAGIC = 0x2468 /* minix V2 */ - MINIX2_SUPER_MAGIC2 = 0x2478 /* minix V2, 30 char names */ - MSDOS_SUPER_MAGIC = 0x4d44 - NCP_SUPER_MAGIC = 0x564c - NFS_SUPER_MAGIC = 0x6969 - NTFS_SB_MAGIC = 0x5346544e - OPENPROM_SUPER_MAGIC = 0x9fa1 - PROC_SUPER_MAGIC = 0x9fa0 - QNX4_SUPER_MAGIC = 0x002f - REISERFS_SUPER_MAGIC = 0x52654973 - ROMFS_MAGIC = 0x7275 + ADFS_SUPER_MAGIC = 0xadf5 + AFFS_SUPER_MAGIC = 0xadff + AFS_SUPER_MAGIC = 0x5346414F + AUTOFS_SUPER_MAGIC = 0x0187 + CODA_SUPER_MAGIC = 0x73757245 + CRAMFS_MAGIC = 0x28cd3d45 /* some random number */ + CRAMFS_MAGIC_WEND = 0x453dcd28 /* magic number with the wrong endianess */ + DEBUGFS_MAGIC = 0x64626720 + SECURITYFS_MAGIC = 0x73636673 + SELINUX_MAGIC = 0xf97cff8c + SMACK_MAGIC = 0x43415d53 /* "SMAC" */ + RAMFS_MAGIC = 0x858458f6 /* some random number */ + TMPFS_MAGIC = 0x01021994 + HUGETLBFS_MAGIC = 0x958458f6 /* some random number */ + SQUASHFS_MAGIC = 0x73717368 + ECRYPTFS_SUPER_MAGIC = 0xf15f + EFS_SUPER_MAGIC = 0x414A53 + EXT2_SUPER_MAGIC = 0xEF53 + EXT3_SUPER_MAGIC = 0xEF53 + XENFS_SUPER_MAGIC = 0xabba1974 + EXT4_SUPER_MAGIC = 0xEF53 + BTRFS_SUPER_MAGIC = 0x9123683E + NILFS_SUPER_MAGIC = 0x3434 + F2FS_SUPER_MAGIC = 0xF2F52010 + HPFS_SUPER_MAGIC = 0xf995e849 + ISOFS_SUPER_MAGIC = 0x9660 + JFFS2_SUPER_MAGIC = 0x72b6 + PSTOREFS_MAGIC = 0x6165676C + EFIVARFS_MAGIC = 0xde5e81e4 + HOSTFS_SUPER_MAGIC = 0x00c0ffee + + MINIX_SUPER_MAGIC = 0x137F /* minix v1 fs, 14 char names */ + MINIX_SUPER_MAGIC2 = 0x138F /* minix v1 fs, 30 char names */ + MINIX2_SUPER_MAGIC = 0x2468 /* minix v2 fs, 14 char names */ + MINIX2_SUPER_MAGIC2 = 0x2478 /* minix v2 fs, 30 char names */ + MINIX3_SUPER_MAGIC = 0x4d5a /* minix v3 fs, 60 char names */ + + MSDOS_SUPER_MAGIC = 0x4d44 /* MD */ + NCP_SUPER_MAGIC = 0x564c /* Guess, what = 0x564c is :-) */ + NFS_SUPER_MAGIC = 0x6969 + OPENPROM_SUPER_MAGIC = 0x9fa1 + QNX4_SUPER_MAGIC = 0x002f /* qnx4 fs detection */ + QNX6_SUPER_MAGIC = 0x68191122 /* qnx6 fs detection */ + + REISERFS_SUPER_MAGIC = 0x52654973 /* used by gcc */ + /* used by file system utilities that + look at the superblock, etc. */ + // REISERFS_SUPER_MAGIC_STRING "ReIsErFs" + // REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs" + // REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs" SMB_SUPER_MAGIC = 0x517B - SYSV2_SUPER_MAGIC = 0x012FF7B6 - SYSV4_SUPER_MAGIC = 0x012FF7B5 - TMPFS_MAGIC = 0x01021994 - UDF_SUPER_MAGIC = 0x15013346 - UFS_MAGIC = 0x00011954 + CGROUP_SUPER_MAGIC = 0x27e0eb + STACK_END_MAGIC = 0x57AC6E9D + TRACEFS_MAGIC = 0x74726163 + V9FS_MAGIC = 0x01021997 + BDEVFS_MAGIC = 0x62646576 + BINFMTFS_MAGIC = 0x42494e4d + DEVPTS_SUPER_MAGIC = 0x1cd1 + FUTEXFS_SUPER_MAGIC = 0xBAD1DEA + PIPEFS_MAGIC = 0x50495045 + PROC_SUPER_MAGIC = 0x9fa0 + SOCKFS_MAGIC = 0x534F434B + SYSFS_MAGIC = 0x62656572 USBDEVICE_SUPER_MAGIC = 0x9fa2 - VXFS_SUPER_MAGIC = 0xa501FCF5 - XENIX_SUPER_MAGIC = 0x012FF7B4 - XFS_SUPER_MAGIC = 0x58465342 - _XIAFS_SUPER_MAGIC = 0x012FD16D + MTD_INODE_FS_MAGIC = 0x11307854 + ANON_INODE_FS_MAGIC = 0x09041934 + BTRFS_TEST_MAGIC = 0x73727279 + NSFS_MAGIC = 0x6e736673 ) var fsTypeMap = map[int64]string{ - AFFS_SUPER_MAGIC: "affs", - COH_SUPER_MAGIC: "coh", - DEVFS_SUPER_MAGIC: "devfs", - EXT2_OLD_SUPER_MAGIC: "old ext2", - EXT2_SUPER_MAGIC: "ext2", - EXT3_SUPER_MAGIC: "ext3", - EXT4_SUPER_MAGIC: "ext4", + AFFS_SUPER_MAGIC: "affs", + BTRFS_SUPER_MAGIC: "btrfs", + COH_SUPER_MAGIC: "coh", + DEVFS_SUPER_MAGIC: "devfs", + EXT2_OLD_SUPER_MAGIC: "old ext2", + EXT2_SUPER_MAGIC: "ext2", + //EXT3_SUPER_MAGIC: "ext3", // TODO: how to identify? + //EXT4_SUPER_MAGIC: "ext4", + TMPFS_MAGIC: "tmpfs", HFS_SUPER_MAGIC: "hfs", HPFS_SUPER_MAGIC: "hpfs", ISOFS_SUPER_MAGIC: "isofs", @@ -84,6 +109,7 @@ var fsTypeMap = map[int64]string{ NFS_SUPER_MAGIC: "nfs", NTFS_SB_MAGIC: "ntfs", PROC_SUPER_MAGIC: "proc", + REISERFS_SUPER_MAGIC: "reiserfs", SMB_SUPER_MAGIC: "smb", SYSV2_SUPER_MAGIC: "sysv2", SYSV4_SUPER_MAGIC: "sysv4", @@ -91,6 +117,7 @@ var fsTypeMap = map[int64]string{ USBDEVICE_SUPER_MAGIC: "usb", VXFS_SUPER_MAGIC: "vxfs", XENIX_SUPER_MAGIC: "xenix", + XENFS_SUPER_MAGIC: "xenfs", XFS_SUPER_MAGIC: "xfs", _XIAFS_SUPER_MAGIC: "xiafs", } From 59c4b4ca75af24281b5623f05f388bfb2a085fb5 Mon Sep 17 00:00:00 2001 From: Shirou WAKAYAMA Date: Fri, 14 Aug 2015 20:37:35 +0900 Subject: [PATCH 3/3] disk[linux]: fix fstype map. --- disk/disk_linux.go | 273 +++++++++++++++++++++++++++++++++++------------------ disk/disk_test.go | 1 + 2 files changed, 182 insertions(+), 92 deletions(-) diff --git a/disk/disk_linux.go b/disk/disk_linux.go index 4813665..d6c8cee 100644 --- a/disk/disk_linux.go +++ b/disk/disk_linux.go @@ -16,110 +16,199 @@ const ( SectorSize = 512 ) const ( - // magic.h - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_SUPER_MAGIC = 0x5346414F - AUTOFS_SUPER_MAGIC = 0x0187 - CODA_SUPER_MAGIC = 0x73757245 - CRAMFS_MAGIC = 0x28cd3d45 /* some random number */ - CRAMFS_MAGIC_WEND = 0x453dcd28 /* magic number with the wrong endianess */ - DEBUGFS_MAGIC = 0x64626720 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SMACK_MAGIC = 0x43415d53 /* "SMAC" */ - RAMFS_MAGIC = 0x858458f6 /* some random number */ - TMPFS_MAGIC = 0x01021994 - HUGETLBFS_MAGIC = 0x958458f6 /* some random number */ - SQUASHFS_MAGIC = 0x73717368 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFS_SUPER_MAGIC = 0x414A53 - EXT2_SUPER_MAGIC = 0xEF53 - EXT3_SUPER_MAGIC = 0xEF53 - XENFS_SUPER_MAGIC = 0xabba1974 - EXT4_SUPER_MAGIC = 0xEF53 - BTRFS_SUPER_MAGIC = 0x9123683E - NILFS_SUPER_MAGIC = 0x3434 - F2FS_SUPER_MAGIC = 0xF2F52010 - HPFS_SUPER_MAGIC = 0xf995e849 - ISOFS_SUPER_MAGIC = 0x9660 - JFFS2_SUPER_MAGIC = 0x72b6 - PSTOREFS_MAGIC = 0x6165676C - EFIVARFS_MAGIC = 0xde5e81e4 - HOSTFS_SUPER_MAGIC = 0x00c0ffee - - MINIX_SUPER_MAGIC = 0x137F /* minix v1 fs, 14 char names */ - MINIX_SUPER_MAGIC2 = 0x138F /* minix v1 fs, 30 char names */ - MINIX2_SUPER_MAGIC = 0x2468 /* minix v2 fs, 14 char names */ - MINIX2_SUPER_MAGIC2 = 0x2478 /* minix v2 fs, 30 char names */ - MINIX3_SUPER_MAGIC = 0x4d5a /* minix v3 fs, 60 char names */ - - MSDOS_SUPER_MAGIC = 0x4d44 /* MD */ - NCP_SUPER_MAGIC = 0x564c /* Guess, what = 0x564c is :-) */ - NFS_SUPER_MAGIC = 0x6969 - OPENPROM_SUPER_MAGIC = 0x9fa1 - QNX4_SUPER_MAGIC = 0x002f /* qnx4 fs detection */ - QNX6_SUPER_MAGIC = 0x68191122 /* qnx6 fs detection */ - - REISERFS_SUPER_MAGIC = 0x52654973 /* used by gcc */ - /* used by file system utilities that - look at the superblock, etc. */ - // REISERFS_SUPER_MAGIC_STRING "ReIsErFs" - // REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs" - // REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs" - SMB_SUPER_MAGIC = 0x517B - CGROUP_SUPER_MAGIC = 0x27e0eb - STACK_END_MAGIC = 0x57AC6E9D - TRACEFS_MAGIC = 0x74726163 - V9FS_MAGIC = 0x01021997 + // man statfs + ADFS_SUPER_MAGIC = 0xadf5 + AFFS_SUPER_MAGIC = 0xADFF BDEVFS_MAGIC = 0x62646576 + BEFS_SUPER_MAGIC = 0x42465331 + BFS_MAGIC = 0x1BADFACE BINFMTFS_MAGIC = 0x42494e4d + BTRFS_SUPER_MAGIC = 0x9123683E + CGROUP_SUPER_MAGIC = 0x27e0eb + CIFS_MAGIC_NUMBER = 0xFF534D42 + CODA_SUPER_MAGIC = 0x73757245 + COH_SUPER_MAGIC = 0x012FF7B7 + CRAMFS_MAGIC = 0x28cd3d45 + DEBUGFS_MAGIC = 0x64626720 + DEVFS_SUPER_MAGIC = 0x1373 DEVPTS_SUPER_MAGIC = 0x1cd1 + EFIVARFS_MAGIC = 0xde5e81e4 + EFS_SUPER_MAGIC = 0x00414A53 + EXT_SUPER_MAGIC = 0x137D + EXT2_OLD_SUPER_MAGIC = 0xEF51 + EXT2_SUPER_MAGIC = 0xEF53 + EXT3_SUPER_MAGIC = 0xEF53 + EXT4_SUPER_MAGIC = 0xEF53 + FUSE_SUPER_MAGIC = 0x65735546 FUTEXFS_SUPER_MAGIC = 0xBAD1DEA + HFS_SUPER_MAGIC = 0x4244 + HOSTFS_SUPER_MAGIC = 0x00c0ffee + HPFS_SUPER_MAGIC = 0xF995E849 + HUGETLBFS_MAGIC = 0x958458f6 + ISOFS_SUPER_MAGIC = 0x9660 + JFFS2_SUPER_MAGIC = 0x72b6 + JFS_SUPER_MAGIC = 0x3153464a + MINIX_SUPER_MAGIC = 0x137F /* orig. minix */ + MINIX_SUPER_MAGIC2 = 0x138F /* 30 char minix */ + MINIX2_SUPER_MAGIC = 0x2468 /* minix V2 */ + MINIX2_SUPER_MAGIC2 = 0x2478 /* minix V2, 30 char names */ + MINIX3_SUPER_MAGIC = 0x4d5a /* minix V3 fs, 60 char names */ + MQUEUE_MAGIC = 0x19800202 + MSDOS_SUPER_MAGIC = 0x4d44 + NCP_SUPER_MAGIC = 0x564c + NFS_SUPER_MAGIC = 0x6969 + NILFS_SUPER_MAGIC = 0x3434 + NTFS_SB_MAGIC = 0x5346544e + OCFS2_SUPER_MAGIC = 0x7461636f + OPENPROM_SUPER_MAGIC = 0x9fa1 PIPEFS_MAGIC = 0x50495045 PROC_SUPER_MAGIC = 0x9fa0 + PSTOREFS_MAGIC = 0x6165676C + QNX4_SUPER_MAGIC = 0x002f + QNX6_SUPER_MAGIC = 0x68191122 + RAMFS_MAGIC = 0x858458f6 + REISERFS_SUPER_MAGIC = 0x52654973 + ROMFS_MAGIC = 0x7275 + SELINUX_MAGIC = 0xf97cff8c + SMACK_MAGIC = 0x43415d53 + SMB_SUPER_MAGIC = 0x517B SOCKFS_MAGIC = 0x534F434B + SQUASHFS_MAGIC = 0x73717368 SYSFS_MAGIC = 0x62656572 + SYSV2_SUPER_MAGIC = 0x012FF7B6 + SYSV4_SUPER_MAGIC = 0x012FF7B5 + TMPFS_MAGIC = 0x01021994 + UDF_SUPER_MAGIC = 0x15013346 + UFS_MAGIC = 0x00011954 USBDEVICE_SUPER_MAGIC = 0x9fa2 - MTD_INODE_FS_MAGIC = 0x11307854 - ANON_INODE_FS_MAGIC = 0x09041934 - BTRFS_TEST_MAGIC = 0x73727279 - NSFS_MAGIC = 0x6e736673 + V9FS_MAGIC = 0x01021997 + VXFS_SUPER_MAGIC = 0xa501FCF5 + XENFS_SUPER_MAGIC = 0xabba1974 + XENIX_SUPER_MAGIC = 0x012FF7B4 + XFS_SUPER_MAGIC = 0x58465342 + _XIAFS_SUPER_MAGIC = 0x012FD16D + + AFS_SUPER_MAGIC = 0x5346414F + AUFS_SUPER_MAGIC = 0x61756673 + ANON_INODE_FS_SUPER_MAGIC = 0x09041934 + CEPH_SUPER_MAGIC = 0x00C36400 + ECRYPTFS_SUPER_MAGIC = 0xF15F + FAT_SUPER_MAGIC = 0x4006 + FHGFS_SUPER_MAGIC = 0x19830326 + FUSEBLK_SUPER_MAGIC = 0x65735546 + FUSECTL_SUPER_MAGIC = 0x65735543 + GFS_SUPER_MAGIC = 0x1161970 + GPFS_SUPER_MAGIC = 0x47504653 + MTD_INODE_FS_SUPER_MAGIC = 0x11307854 + INOTIFYFS_SUPER_MAGIC = 0x2BAD1DEA + ISOFS_R_WIN_SUPER_MAGIC = 0x4004 + ISOFS_WIN_SUPER_MAGIC = 0x4000 + JFFS_SUPER_MAGIC = 0x07C0 + KAFS_SUPER_MAGIC = 0x6B414653 + LUSTRE_SUPER_MAGIC = 0x0BD00BD0 + NFSD_SUPER_MAGIC = 0x6E667364 + PANFS_SUPER_MAGIC = 0xAAD7AAEA + RPC_PIPEFS_SUPER_MAGIC = 0x67596969 + SECURITYFS_SUPER_MAGIC = 0x73636673 + UFS_BYTESWAPPED_SUPER_MAGIC = 0x54190100 + VMHGFS_SUPER_MAGIC = 0xBACBACBC + VZFS_SUPER_MAGIC = 0x565A4653 + ZFS_SUPER_MAGIC = 0x2FC12FC1 ) +// coreutils/src/stat.c var fsTypeMap = map[int64]string{ - AFFS_SUPER_MAGIC: "affs", - BTRFS_SUPER_MAGIC: "btrfs", - COH_SUPER_MAGIC: "coh", - DEVFS_SUPER_MAGIC: "devfs", - EXT2_OLD_SUPER_MAGIC: "old ext2", - EXT2_SUPER_MAGIC: "ext2", - //EXT3_SUPER_MAGIC: "ext3", // TODO: how to identify? - //EXT4_SUPER_MAGIC: "ext4", - TMPFS_MAGIC: "tmpfs", - HFS_SUPER_MAGIC: "hfs", - HPFS_SUPER_MAGIC: "hpfs", - ISOFS_SUPER_MAGIC: "isofs", - MINIX2_SUPER_MAGIC: "minix v2", - MINIX2_SUPER_MAGIC2: "minix v2 30 char", - MINIX_SUPER_MAGIC: "minix", - MINIX_SUPER_MAGIC2: "minix 30 char", - MSDOS_SUPER_MAGIC: "msdos", - NCP_SUPER_MAGIC: "ncp", - NFS_SUPER_MAGIC: "nfs", - NTFS_SB_MAGIC: "ntfs", - PROC_SUPER_MAGIC: "proc", - REISERFS_SUPER_MAGIC: "reiserfs", - SMB_SUPER_MAGIC: "smb", - SYSV2_SUPER_MAGIC: "sysv2", - SYSV4_SUPER_MAGIC: "sysv4", - UFS_MAGIC: "ufs", - USBDEVICE_SUPER_MAGIC: "usb", - VXFS_SUPER_MAGIC: "vxfs", - XENIX_SUPER_MAGIC: "xenix", - XENFS_SUPER_MAGIC: "xenfs", - XFS_SUPER_MAGIC: "xfs", - _XIAFS_SUPER_MAGIC: "xiafs", + ADFS_SUPER_MAGIC: "adfs", /* 0xADF5 local */ + AFFS_SUPER_MAGIC: "affs", /* 0xADFF local */ + AFS_SUPER_MAGIC: "afs", /* 0x5346414F remote */ + ANON_INODE_FS_SUPER_MAGIC: "anon-inode FS", /* 0x09041934 local */ + AUFS_SUPER_MAGIC: "aufs", /* 0x61756673 remote */ + // AUTOFS_SUPER_MAGIC: "autofs", /* 0x0187 local */ + BEFS_SUPER_MAGIC: "befs", /* 0x42465331 local */ + BDEVFS_MAGIC: "bdevfs", /* 0x62646576 local */ + BFS_MAGIC: "bfs", /* 0x1BADFACE local */ + BINFMTFS_MAGIC: "binfmt_misc", /* 0x42494E4D local */ + BTRFS_SUPER_MAGIC: "btrfs", /* 0x9123683E local */ + CEPH_SUPER_MAGIC: "ceph", /* 0x00C36400 remote */ + CGROUP_SUPER_MAGIC: "cgroupfs", /* 0x0027E0EB local */ + CIFS_MAGIC_NUMBER: "cifs", /* 0xFF534D42 remote */ + CODA_SUPER_MAGIC: "coda", /* 0x73757245 remote */ + COH_SUPER_MAGIC: "coh", /* 0x012FF7B7 local */ + CRAMFS_MAGIC: "cramfs", /* 0x28CD3D45 local */ + DEBUGFS_MAGIC: "debugfs", /* 0x64626720 local */ + DEVFS_SUPER_MAGIC: "devfs", /* 0x1373 local */ + DEVPTS_SUPER_MAGIC: "devpts", /* 0x1CD1 local */ + ECRYPTFS_SUPER_MAGIC: "ecryptfs", /* 0xF15F local */ + EFS_SUPER_MAGIC: "efs", /* 0x00414A53 local */ + EXT_SUPER_MAGIC: "ext", /* 0x137D local */ + EXT2_SUPER_MAGIC: "ext2/ext3", /* 0xEF53 local */ + EXT2_OLD_SUPER_MAGIC: "ext2", /* 0xEF51 local */ + FAT_SUPER_MAGIC: "fat", /* 0x4006 local */ + FHGFS_SUPER_MAGIC: "fhgfs", /* 0x19830326 remote */ + FUSEBLK_SUPER_MAGIC: "fuseblk", /* 0x65735546 remote */ + FUSECTL_SUPER_MAGIC: "fusectl", /* 0x65735543 remote */ + FUTEXFS_SUPER_MAGIC: "futexfs", /* 0x0BAD1DEA local */ + GFS_SUPER_MAGIC: "gfs/gfs2", /* 0x1161970 remote */ + GPFS_SUPER_MAGIC: "gpfs", /* 0x47504653 remote */ + HFS_SUPER_MAGIC: "hfs", /* 0x4244 local */ + HPFS_SUPER_MAGIC: "hpfs", /* 0xF995E849 local */ + HUGETLBFS_MAGIC: "hugetlbfs", /* 0x958458F6 local */ + MTD_INODE_FS_SUPER_MAGIC: "inodefs", /* 0x11307854 local */ + INOTIFYFS_SUPER_MAGIC: "inotifyfs", /* 0x2BAD1DEA local */ + ISOFS_SUPER_MAGIC: "isofs", /* 0x9660 local */ + ISOFS_R_WIN_SUPER_MAGIC: "isofs", /* 0x4004 local */ + ISOFS_WIN_SUPER_MAGIC: "isofs", /* 0x4000 local */ + JFFS_SUPER_MAGIC: "jffs", /* 0x07C0 local */ + JFFS2_SUPER_MAGIC: "jffs2", /* 0x72B6 local */ + JFS_SUPER_MAGIC: "jfs", /* 0x3153464A local */ + KAFS_SUPER_MAGIC: "k-afs", /* 0x6B414653 remote */ + LUSTRE_SUPER_MAGIC: "lustre", /* 0x0BD00BD0 remote */ + MINIX_SUPER_MAGIC: "minix", /* 0x137F local */ + MINIX_SUPER_MAGIC2: "minix (30 char.)", /* 0x138F local */ + MINIX2_SUPER_MAGIC: "minix v2", /* 0x2468 local */ + MINIX2_SUPER_MAGIC2: "minix v2 (30 char.)", /* 0x2478 local */ + MINIX3_SUPER_MAGIC: "minix3", /* 0x4D5A local */ + MQUEUE_MAGIC: "mqueue", /* 0x19800202 local */ + MSDOS_SUPER_MAGIC: "msdos", /* 0x4D44 local */ + NCP_SUPER_MAGIC: "novell", /* 0x564C remote */ + NFS_SUPER_MAGIC: "nfs", /* 0x6969 remote */ + NFSD_SUPER_MAGIC: "nfsd", /* 0x6E667364 remote */ + NILFS_SUPER_MAGIC: "nilfs", /* 0x3434 local */ + NTFS_SB_MAGIC: "ntfs", /* 0x5346544E local */ + OPENPROM_SUPER_MAGIC: "openprom", /* 0x9FA1 local */ + OCFS2_SUPER_MAGIC: "ocfs2", /* 0x7461636f remote */ + PANFS_SUPER_MAGIC: "panfs", /* 0xAAD7AAEA remote */ + PIPEFS_MAGIC: "pipefs", /* 0x50495045 remote */ + PROC_SUPER_MAGIC: "proc", /* 0x9FA0 local */ + PSTOREFS_MAGIC: "pstorefs", /* 0x6165676C local */ + QNX4_SUPER_MAGIC: "qnx4", /* 0x002F local */ + QNX6_SUPER_MAGIC: "qnx6", /* 0x68191122 local */ + RAMFS_MAGIC: "ramfs", /* 0x858458F6 local */ + REISERFS_SUPER_MAGIC: "reiserfs", /* 0x52654973 local */ + ROMFS_MAGIC: "romfs", /* 0x7275 local */ + RPC_PIPEFS_SUPER_MAGIC: "rpc_pipefs", /* 0x67596969 local */ + SECURITYFS_SUPER_MAGIC: "securityfs", /* 0x73636673 local */ + SELINUX_MAGIC: "selinux", /* 0xF97CFF8C local */ + SMB_SUPER_MAGIC: "smb", /* 0x517B remote */ + SOCKFS_MAGIC: "sockfs", /* 0x534F434B local */ + SQUASHFS_MAGIC: "squashfs", /* 0x73717368 local */ + SYSFS_MAGIC: "sysfs", /* 0x62656572 local */ + SYSV2_SUPER_MAGIC: "sysv2", /* 0x012FF7B6 local */ + SYSV4_SUPER_MAGIC: "sysv4", /* 0x012FF7B5 local */ + TMPFS_MAGIC: "tmpfs", /* 0x01021994 local */ + UDF_SUPER_MAGIC: "udf", /* 0x15013346 local */ + UFS_MAGIC: "ufs", /* 0x00011954 local */ + UFS_BYTESWAPPED_SUPER_MAGIC: "ufs", /* 0x54190100 local */ + USBDEVICE_SUPER_MAGIC: "usbdevfs", /* 0x9FA2 local */ + V9FS_MAGIC: "v9fs", /* 0x01021997 local */ + VMHGFS_SUPER_MAGIC: "vmhgfs", /* 0xBACBACBC remote */ + VXFS_SUPER_MAGIC: "vxfs", /* 0xA501FCF5 local */ + VZFS_SUPER_MAGIC: "vzfs", /* 0x565A4653 local */ + XENFS_SUPER_MAGIC: "xenfs", /* 0xABBA1974 local */ + XENIX_SUPER_MAGIC: "xenix", /* 0x012FF7B4 local */ + XFS_SUPER_MAGIC: "xfs", /* 0x58465342 local */ + _XIAFS_SUPER_MAGIC: "xia", /* 0x012FD16D local */ + ZFS_SUPER_MAGIC: "zfs", /* 0x2FC12FC1 local */ } // Get disk partitions. diff --git a/disk/disk_test.go b/disk/disk_test.go index 690cc45..c1e7f2a 100644 --- a/disk/disk_test.go +++ b/disk/disk_test.go @@ -18,6 +18,7 @@ func TestDisk_usage(t *testing.T) { if v.Path != path { t.Errorf("error %v", err) } + fmt.Println(v) } func TestDisk_partitions(t *testing.T) {