2039:0110
-g
Program terminated normally
-d 1000
2039:1000 00 80 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
2039:1010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
2039:1020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
2039:1030 00 00 00 00 0A 4B 32 33-0A 4B 32 33 0A 4B 32 33 .....K23.K23.K23
2039:1040 ED 41 10 00 00 00 02 00-80 02 00 00 DA 05 00 00 .A..............
2039:1050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
2039:1060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
2039:1070 00 00 00 00 E1 83 C5 35-46 82 C5 35 46 82 C5 35 .......5F..5F..5
现在我们看到的是 i-node 表的前两项。从偏移1040H至107FH的64个字节是2号i-node ,即根目录的 i-node 。
下面我们就根据 i-node 计算根目录在硬盘上的物理地址。
我们从偏移1040H看起:
ED41H表示文件类型与存取权限为“drwxr-xr-x”;
1000H表示文件连结数为16;
0000H表示文件属主ID为 0;
0200H表示文件组ID为 2;
80020000H表示文件字节数为 640个;
DA0500H表示第一个数据块地址。由于其它12个数据块地址均为 0,所以可断定根目录在硬盘上只占了一个数据块。现在我们必须依据DA0500H计算出这个数据块存放在硬盘的第几柱面、第几磁头、第几扇区。如何计算?作者专门总结了一套公式:
C = TRUNC ( P/(H*S) )
C1 = C0 + C
H1 = TRUNC( (P-C*H*S)/S )
S1 = P - C*H*S - H1*S + 1
其中:
C1、H1、S1分别为数据块物理地址柱面号、磁头号、扇区号
P等于数据块地址翻译成十进制数后再乘以 2
H为硬盘磁头数
S为每磁头扇区数
C0为根文件系统起始柱面
C只是一个中间量
将DA0500H代入上述公式,并根据H=64,S=32,C0=2,可算出C1=3,H1=29,S1=21。因此根目录在硬盘上的物理地址为: 3柱面 29头 21扇。
下面就把它读出来。
-a
2039:0100 MOV AX,0201
2039:0103 MOV BX,1000
2039:0106 MOV CX,0315
2039:0109 MOV DX,1D80
2039:010C INT 13
2039:010E INT 20
2039:0110
-g
Program terminated normally
-d 1000
2039:1000 02 00 2E 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
2039:1010 02 00 2E 2E 00 00 00 00-00 00 00 00 00 00 00 00 ................
2039:1020 03 00 64 65 76 00 00 00-00 00 00 00 00 00 00 00 ..dev...........
2039:1030 0C 00 62 69 6E 00 00 00-00 00 00 00 00 00 00 00 ..bin...........
2039:1040 1F 00 75 73 72 00 00 00-00 00 00 00 00 00 00 00 ..usr...........
2039:1050 22 00 65 74 63 00 00 00-00 00 00 00 00 00 00 00 ".etc...........
2039:1060 4B 00 73 68 6C 69 62 00-00 00 00 00 00 00 00 00 K.shlib.........
2039:1070 4E 01 2E 6C 61 73 74 6C-6F 67 69 6E 00 00 00 00 N..lastlogin....
上面列出的就是根目录的前八项,从中可以看出 /etc 目录的 i-node 号为 22H,即34D。
因为每个扇区有8个 i-node,所以34号 i-node 必定在2柱面0头9扇。
-a
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 管理员 口令 系统 命令 文件 我们 局限性 UNIX 硬盘 方案 |
注册
个人空间
