Mhdd使用方法说明
Mhdd 的指示灯含义:
Mhdd 命令代码详解:
Mhdd使用方法说明
Mhdd 的指示灯含义:
Mhdd 命令代码详解:
1.以ROOT身份进入LINUX
2.退出到windows,点击 SETTING菜单下的ENABLE VMWARE TOOLS子菜单,确认安装
3.把光驱改为使用iso镜像,路径为C:Program FilesVMwareVMware WorkstationProgramslinux.iso
4.进入linux运行mount -t iso9660 /dev/cdrom /mnt
加载CDROM设备,这时如果进入 /mnt 目录下,你将会发现多了一个文件:vmware-linux-tools.tar.gz。这就是WMWARE TOOLS的LINUX软件包,也就是我们刚才使用WINISO打开LINUX.ISO文件所看到的。
cp /mnt/vmware-linux-tools.tar.gz /tmp
将该软件包拷贝到LINUX的 TMP目录下。
umount /dev/cdrom
卸载CDROM。
cd /tmp
进入TMP目录
tar zxf vmware-linux-tools.tar.gz
解压缩该软件包,默认解压到vmware-linux-tools目录下(与文件名同名)。
cd vmware-linux-tools
进入解压后的目录
./install.pl 运行安装命令。
这时install提示你是否需要备份以前的配置文件,建议选择"y"。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
struct exfat_super_block { uint8_t jump[3]; /* 0x00 jmp and nop instructions */ uint8_t oem_name[8]; /* 0x03 "EXFAT " */ uint8_t __unused1[53]; /* 0x0B always 0 */ le64_t sector_start; /* 0x40 partition first sector */ le64_t sector_count; /* 0x48 partition sectors count */ le32_t fat_sector_start; /* 0x50 FAT first sector */ le32_t fat_sector_count; /* 0x54 FAT sectors count */ le32_t cluster_sector_start; /* 0x58 first cluster sector */ le32_t cluster_count; /* 0x5C total clusters count */ le32_t rootdir_cluster; /* 0x60 first cluster of the root dir */ le32_t volume_serial; /* 0x64 volume serial number */ struct /* 0x68 FS version */ { uint8_t minor; uint8_t major; } version; le16_t volume_state; /* 0x6A volume state flags */ uint8_t sector_bits; /* 0x6C sector size as (1 << n) */ uint8_t spc_bits; /* 0x6D sectors per cluster as (1 << n) */ uint8_t fat_count; /* 0x6E always 1 */ uint8_t drive_no; /* 0x6F always 0x80 */ uint8_t allocated_percent; /* 0x70 percentage of allocated space */ uint8_t __unused2[397]; /* 0x71 always 0 */ le16_t boot_signature; /* the value of 0xAA55 */ } struct exfat_entry /* common container for all entries */ { uint8_t type; /* any of EXFAT_ENTRY_xxx */ uint8_t data[31]; } struct exfat_entry_bitmap /* allocated clusters bitmap */ { uint8_t type; /* EXFAT_ENTRY_BITMAP */ uint8_t __unknown1[19]; le32_t start_cluster; le64_t size; /* in bytes */ } struct exfat_entry_upcase /* upper case translation table */ { uint8_t type; /* EXFAT_ENTRY_UPCASE */ uint8_t __unknown1[3]; le32_t checksum; uint8_t __unknown2[12]; le32_t start_cluster; le64_t size; /* in bytes */ } struct exfat_entry_label /* volume label */ { uint8_t type; /* EXFAT_ENTRY_LABEL */ uint8_t length; /* number of characters */ le16_t name[EXFAT_ENAME_MAX]; /* in UTF-16LE */ } struct exfat_entry_meta1 /* file or directory info (part 1) */ { uint8_t type; /* EXFAT_ENTRY_FILE */ uint8_t continuations; le16_t checksum; le16_t attrib; /* combination of EXFAT_ATTRIB_xxx */ le16_t __unknown1; le16_t crtime, crdate; /* creation date and time */ le16_t mtime, mdate; /* latest modification date and time */ le16_t atime, adate; /* latest access date and time */ uint8_t crtime_cs; /* creation time in cs (centiseconds) */ uint8_t mtime_cs; /* latest modification time in cs */ uint8_t __unknown2[10]; } struct exfat_entry_meta2 /* file or directory info (part 2) */ { uint8_t type; /* EXFAT_ENTRY_FILE_INFO */ uint8_t flags; /* combination of EXFAT_FLAG_xxx */ uint8_t __unknown1; uint8_t name_length; le16_t name_hash; le16_t __unknown2; le64_t real_size; /* in bytes, equals to size */ uint8_t __unknown3[4]; le32_t start_cluster; le64_t size; /* in bytes, equals to real_size */ } struct exfat_entry_name /* file or directory name */ { uint8_t type; /* EXFAT_ENTRY_FILE_NAME */ uint8_t __unknown; le16_t name[EXFAT_ENAME_MAX]; /* in UTF-16LE */ } |
Windows 8中支持的VHDX虚拟磁盘格式,以下是虚拟磁盘结构代码。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
//Structure 1: File Type Identifier struct VHDX_FILE_IDENTIFIER { UINT64 Signature; UINT16 Creator[256]; }; //Structure 2: Header struct VHDX_HEADER { UINT32 Signature; UINT32 Checksum; UINT64 SequenceNumber; GUID FileWriteGuid; GUID DataWriteGuid; GUID LogGuid; UINT16 LogVersion; UINT16 Version; UINT32 LogLength; UINT64 LogOffset; UINT8[502] Reserved; }; //Structure 3: Region Table Header struct VHDX_REGION_TABLE_HEADER { UINT32 Signature; UINT32 Checksum; UINT32 EntryCount; UINT32 Reserved; }; //Structure 4: Region Table Entry struct VHDX_REGION_TABLE_ENTRY { GUID Guid; UINT64 FileOffset; UINT32 Length; UINT32 Required:1; UINT32 Reserved:31; }; //Structure 5: Log Entry Header struct VHDX_LOG_ENTRY_HEADER { UINT32 Signature; UINT32 Checksum; UINT32 EntryLength; UINT32 Tail; UINT64 SequenceNumber; UINT32 DescriptorCount; UINT32 Reserved; GUID LogGuid; UINT64 FlushedFileOffset; UINT64 LastFileOffset; }; //Structure 6: Log Zero Descriptor struct VHDX_LOG_ZERO_DESCRIPTOR { UINT32 ZeroSignature; UINT32 Reserved; UINT64 ZeroLength; UINT64 FileOffset; UINT64 SequenceNumber; }; //Structure 7: Log Data Descriptor struct VHDX_LOG_DATA_DESCRIPTOR { UINT32 DataSignature; UINT32 TrailingBytes; UINT64 LeadingBytes; UINT64 FileOffset; UINT64 SequenceNumber; }; //Structure 8: Log Data Sector struct VHDX_LOG_DATA_SECTOR { UINT32 DataSignature; UINT32 SequenceHigh; UINT8 Data[4084]; UINT32 SequenceLow; }; //Structure 9: BAT Entry struct VHDX_BAT_ENTRY { UINT64 State:3; UINT64 Reserved:17; UINT64 FileOffsetMB:44; }; //Structure 10: Metadata Table Header struct VHDX_METADATA_TABLE_HEADER { UINT64 Signature; UINT16 Reserved; UINT16 EntryCount; UINT32 Reserved2[5]; }; //Structure 11: Metadata Table Entry struct VHDX_METADATA_TABLE_ENTRY { GUID ItemId; UINT32 Offset; UINT32 Length; UINT32 IsUser:1; UINT32 IsVirtualDisk:1; UINT32 IsRequired:1; UINT32 Reserved:29; UINT32 Reserved2; }; //Structure 12: File Parameters Metadata Item struct VHDX_FILE_PARAMETERS { UINT32 BlockSize; UINT32 LeaveBlocksAllocated:1; UINT32 HasParent:1; UINT32 Reserved:30; }; //Structure 13: Virtual Disk Size Metadata Item struct VHDX_VIRTUAL_DISK_SIZE { UINT64 VirtualDiskSize; }; //Structure 14: Page 83 Data Metadata Item struct VHDX_PAGE83_DATA { GUID Page83Data; }; //Structure 15: Logical Sector Size Metadata Item struct VHDX_VIRTUAL_DISK_LOGICAL_SECTOR_SIZE { UINT32 LogicalSectorSize; }; //Structure 16: Logical Sector Size Metadata Item struct VHDX_VIRTUAL_DISK_PHYSICAL_SECTOR_SIZE { UINT32 PhysicalSectorSize; }; //Structure 17: Parent Locator Header struct VHDX_PARENT_LOCATOR_HEADER { GUID LocatorType; UINT16 Reserved; UINT16 KeyValueCount; }; //Structure 18: Parent Locator Entry struct VHDX_PARENT_LOCATOR_ENTRY { UINT32 KeyOffset; UINT32 ValueOffset; UINT16 KeyLength; UINT16 ValueLength; }; |
ReFS文件系统是微软为新的服务器版本准备的文件系统,具体介绍可以参阅“ReFS文件系统介绍”,里面介绍的非常详细,目前还没有发现针对ReFS文件系统研究的资料,以下是我自己摸索出来的,仅供参考。
ReFS文件系统使用的分区类型描述依然是07,与NTFS一样,DBR部分如下所示,把我做的WinHex模板贴出来。
/*------------------------------------------------------------------------------------------*/
template "Boot Sector ReFS"
description "Boot sector of an ReFS partition"
applies_to disk
sector-aligned
requires 0x03 "52 65 46 53" // ID must be "ReFS"
begin
move 3
char[4] "File system ID"
move 9
char[4] "FSRS"
uint16 "Bytes per sector ?"
hex 2 "Unknown"
int64 "Total sectors"
uint32 "Bytes per sector ?"
uint32 "Sectors per cluster"
hex 8 "01 01 00 00 00 00 00 00"
move 8
hex 4 "32-bit serial number (hex)"
move -4
hex 8 "64-bit serial number (hex)"
end
/*------------------------------------------------------------------------------------------*/