dump文件分析 求助

kongzhongxx 2010-06-29 12:58:27
寻思好久都没解决,又来麻烦大家了。(关键对内核驱动和汇编不熟)
我们自己设计的pci9052采集板子,驱动基于开发板(只修改了总线位数)。
驱动安装使用都正常,有点小毛病
打开电脑马上(如开机2,3分钟即进行)频繁读取数据会出现电脑自动重启(少量数据读写没问题),但若打开电脑5分钟后再频繁读取会没有问题。 windbg分析dmp结果如下
Symbol search path is: SRV*c:/temp*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows XP Kernel Version 2600 (Service Pack 2) MP (2 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 2600.xpsp_sp2_gdr.100216-1441
Machine Name:
Kernel base = 0x804d8000 PsLoadedModuleList = 0x8055d700
Debug session time: Wed Apr 28 15:17:37.312 2010 (GMT+8)
System Uptime: 0 days 0:02:11.984
Loading Kernel Symbols
...............................................................
.................................................
Loading User Symbols
Loading unloaded module list
............
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck F4, {3, 89a64548, 89a646bc, 805d220a}

unable to get nt!KiCurrentEtwBufferOffset
unable to get nt!KiCurrentEtwBufferBase
Probably caused by : hardware_disk

Followup: MachineOwner
---------

1: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 00000003, Process
Arg2: 89a64548, Terminating object
Arg3: 89a646bc, Process image file name
Arg4: 805d220a, Explanatory message (ascii)

Debugging Details:
------------------

unable to get nt!KiCurrentEtwBufferOffset
unable to get nt!KiCurrentEtwBufferBase

PROCESS_OBJECT: 89a64548

IMAGE_NAME: hardware_disk

DEBUG_FLR_IMAGE_TIMESTAMP: 0

FAULTING_MODULE: 00000000

PROCESS_NAME: csrss.exe

EXCEPTION_RECORD: ba2079d8 -- (.exr 0xffffffffba2079d8)
ExceptionAddress: 764fb3b9
ExceptionCode: c0000006 (In-page I/O error)
ExceptionFlags: 00000000
NumberParameters: 3
Parameter[0]: 00000008
Parameter[1]: 764fb3b9
Parameter[2]: c000009a
Inpage operation failed at 764fb3b9, due to I/O error c000009a

EXCEPTION_CODE: (NTSTATUS) 0xc0000006 - "0x%08lx"

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: DRIVER_FAULT

ERROR_CODE: (NTSTATUS) 0xc0000006 - "0x%08lx"

EXCEPTION_PARAMETER1: 00000008

EXCEPTION_PARAMETER2: 764fb3b9

EXCEPTION_PARAMETER3: c000009a

IO_ERROR: (NTSTATUS) 0xc000009a - <Unable to get error code text>

EXCEPTION_STR: 0xc0000006_c000009a

FAULTING_IP:
+1b4952f0112dfdc
764fb3b9 ?? ???

BUGCHECK_STR: 0xF4_IOERR_C000009A

STACK_TEXT:
ba207520 805d13b1 000000f4 00000003 89a64548 nt!KeBugCheckEx+0x1b
ba207544 805d22b5 805d220a 89a64548 89a646bc nt!PspCatchCriticalBreak+0x75
ba207574 8054189c 89a64790 c0000006 ba2079b0 nt!NtTerminateProcess+0x7d
ba207574 80501699 89a64790 c0000006 ba2079b0 nt!KiFastCallEntry+0xfc
ba2075f4 804ff6ca ffffffff c0000006 ba2079f8 nt!ZwTerminateProcess+0x11
ba2079b0 80502de1 ba2079d8 00000000 ba207d64 nt!KiDispatchException+0x3a0
ba207d34 8054517f 005afbe8 005afc08 00000000 nt!KiRaiseException+0x175
ba207d50 8054189c 005afbe8 005afc08 00000000 nt!NtRaiseException+0x33
ba207d50 764fb3b9 005afbe8 005afc08 00000000 nt!KiFastCallEntry+0xfc
WARNING: Frame IP not in any known module. Following frames may be wrong.
005afff4 00000000 00000000 00000000 00000000 0x764fb3b9


STACK_COMMAND: kb

FOLLOWUP_IP:
+1b4952f0112dfdc
764fb3b9 ?? ???

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: hardware_disk

FAILURE_BUCKET_ID: 0xF4_IOERR_C000009A_IMAGE_hardware_disk

BUCKET_ID: 0xF4_IOERR_C000009A_IMAGE_hardware_disk

Followup: MachineOwner
---------

...全文
364 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
曹大夯 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kongzhongxx 的回复:]
我把windbg结果贴出来,希望有人帮我分析下bsod前后驱动具体在干吗?在执行哪一块代码出问题了。
[/Quote]

你有PCI驱动的源码吧?用WinDBG联机,看看BSOD前驱动在干什么。你贴出来的Dump信息都是系统代码,是CRSS程序出错了,都看不出和你的驱动有啥关系。
kongzhongxx 2010-06-29
  • 打赏
  • 举报
回复
谢谢 Huntercao!
我把windbg结果贴出来,希望有人帮我分析下bsod前后驱动具体在干吗?在执行哪一块代码出问题了。

我说,申请的非分页都释放了(是指ExAllocatepool函数申请的都free了)
我曾经在一台新电脑上(2G内存,只装了office,VC++)上试过,问题依然一样。
所以我感觉是自己驱动哪一块有缺陷,我又不会汇编。
所以把windbg结果贴出来,希望有人帮我分析下bsod前后驱动具体在干吗?在执行哪一块代码出问题了。
我机器内存2G(感觉够大了!),另外我电脑上windbg不知道为啥!vm 2 !poolused用不了,以前试过。
kd> !vm 2

*** Virtual Memory Usage ***
GetUlongFromAddress: unable to read from 80562108
Physical Memory: 0 ( 0 Kb)
GetUlongFromAddress: unable to read from 80561c40

************ NO PAGING FILE *********************

80561b60: Unable to get paged pool info
GetUlongPtrFromAddress: unable to read from 80551990
GetUlongPtrFromAddress: unable to read from 80561f2c
GetPointerFromAddress: unable to read from 80561c04
GetPointerFromAddress: unable to read from 80555c48
GetUlongFromAddress: unable to read from 8055d780
GetPointerFromAddress: unable to read from 8055d6f4
GetUlongFromAddress: unable to read from 8055d4d4
GetUlongFromAddress: unable to read from 80551918
GetUlongFromAddress: unable to read from 80551928
GetUlongFromAddress: unable to read from 805620fc
GetUlongFromAddress: unable to read from 805620bc
GetUlongFromAddress: unable to read from 8055d330
GetUlongFromAddress: unable to read from 8055d180
GetUlongFromAddress: unable to read from 8055d17c
GetUlongFromAddress: unable to read from 8055d184
GetUlongFromAddress: unable to read from 8055d180
GetUlongFromAddress: unable to read from 8055d17c
GetUlongFromAddress: unable to read from 8055d3dc
GetUlongPtrFromAddress: unable to read from 80554280
GetUlongPtrFromAddress: unable to read from 80555cc0
GetUlongFromAddress: unable to read from 8055d398
GetUlongFromAddress: unable to read from 8055d380
Error reading free nonpaged PTEs 8055d334
GetUlongFromAddress: unable to read from 8055d390
Available Pages: 0 ( 0 Kb)
ResAvail Pages: 0 ( 0 Kb)

********** Running out of physical memory **********

Locked IO Pages: 0 ( 0 Kb)
Free System PTEs: 0 ( 0 Kb)

********** Running out of system PTEs **************

GetUlongFromAddress: unable to read from 8055d318
GetUlongFromAddress: unable to read from 8055d530
Free NP PTEs: 0 ( 0 Kb)
Free Special NP: 0 ( 0 Kb)
Modified Pages: 0 ( 0 Kb)
Modified PF Pages: 0 ( 0 Kb)
80564c20: Unable to get pool descriptor
GetUlongFromAddress: unable to read from 805522b8
NonPagedPool Usage: 0 ( 0 Kb)
NonPagedPool Max: 0 ( 0 Kb)
GetUlongFromAddress: unable to read from 805522b4
PagedPool Usage: 0 ( 0 Kb)
PagedPool Maximum: 0 ( 0 Kb)
GetUlongFromAddress: unable to read from 80565c48
Unable to read _LIST_ENTRY @ 80561b38
Session Commit: 0 ( 0 Kb)
Shared Commit: 0 ( 0 Kb)
Special Pool: 0 ( 0 Kb)
Shared Process: 0 ( 0 Kb)
PagedPool Commit: 0 ( 0 Kb)
Driver Commit: 0 ( 0 Kb)
Committed pages: 75624 ( 302496 Kb)
Commit limit: 0 ( 0 Kb)

********** Number of committed pages is near limit ********
GetUlongFromAddress: unable to read from 8055d3f8
GetUlongFromAddress: unable to read from 8055d3fc

Unable to read/NULL value _LIST_ENTRY @ 805637b8

ProcessCommitUsage could not be calculated

Memory Management Thread Stacks:
Unable to read nt!_LIST_ENTRY @ 805637b8
曹大夯 2010-06-29
  • 打赏
  • 举报
回复
这里有一个更完整的错误分析过程:
http://blogs.msdn.com/b/ntdebugging/archive/2009/07/27/debugging-a-bugcheck-0xf4.aspx

你可以用0: kd> !vm 2来分析一下*** Virtual Memory Usage ***。
你可以用0: kd> !poolused来分析更具体的内存使用情况。
曹大夯 2010-06-29
  • 打赏
  • 举报
回复
粗糙地分析,你说的“网上搜了下,说是可能:This system bugchecked when the critical process csrss.exe failed an I/O operation due to insufficient non-paged pool. ”是真正的原因。因为:

ERROR_CODE: (NTSTATUS) 0xc0000006 - "0x%08lx"

EXCEPTION_PARAMETER1: 00000008

EXCEPTION_PARAMETER2: 764fb3b9

EXCEPTION_PARAMETER3: c000009a

IO_ERROR: (NTSTATUS) 0xc000009a - <Unable to get error code text>

EXCEPTION_STR: 0xc0000006_c000009a


IO_ERROR: (NTSTATUS) 0xc000009a - Insufficient system resources exist to complete the API.
STATUS_INSUFFICIENT_RESOURCES = 0xC000009AL
参考另外一个哥们的错误:
http://www.msfn.org/board/topic/99489-xp-bsods-overnight-with-0xf4-error/

好像在另外一个帖子里面,我们讨论过这个问题:你知道蓝屏前后,你的驱动在做什么事么?

另外,“我查看了下,申请的非分页都释放了。”有什么依据?你分析过DUMP文件,看过non-paged memory的消耗情况么。把分析过程跟大家分享一下。

按照你的问题描述,像是在系统启动过程中,系统需要大量的non-paged内存,同时,你的PCI卡也在大量使用non-paged内存。于是,系统就BSOD了。

换一台内存大一点的机器试一下?或者给系统增加内存条看看。


kongzhongxx 2010-06-29
  • 打赏
  • 举报
回复
网上搜了下,说是可能:
This system bugchecked when the critical process csrss.exe failed an I/O operation due to insufficient non-paged pool.
我查看了下,申请的非分页都释放了。
BugCheck F4, {3, 89a64548, 89a646bc, 805d220a}
一些分析如下:
1: kd> u 89a64548
89a64548 0300 add eax,dword ptr [eax]
89a6454a 1b00 sbb eax,dword ptr [eax]
89a6454c 0000 add byte ptr [eax],al
89a6454e 0000 add byte ptr [eax],al
89a64550 90 nop
89a64551 30a2899030a2 xor byte ptr [edx-5DCF6F77h],ah
89a64557 895845 mov dword ptr [eax+45h],ebx
89a6455a a6 cmps byte ptr [esi],byte ptr es:[edi]

1: kd> u 89a646bc
89a646bc 637372 arpl word ptr [ebx+72h],si
89a646bf 7373 jae 89a64734
89a646c1 2e ???
89a646c2 657865 js 89a6472a
89a646c5 0000 add byte ptr [eax],al
89a646c7 0000 add byte ptr [eax],al
89a646c9 0000 add byte ptr [eax],al
89a646cb 0000 add byte ptr [eax],al

1: kd> dt _EXCEPTION_RECORD 89a646bc
nt!_EXCEPTION_RECORD
+0x000 ExceptionCode : 1936880483
+0x004 ExceptionFlags : 0x78652e73
+0x008 ExceptionRecord : 0x00000065 _EXCEPTION_RECORD
+0x00c ExceptionAddress : (null)
+0x010 NumberParameters : 0
+0x014 ExceptionInformation : [15] 0

1: kd> dt _EXCEPTION_RECORD 89a64548
nt!_EXCEPTION_RECORD
+0x000 ExceptionCode : 1769475
+0x004 ExceptionFlags : 0
+0x008 ExceptionRecord : 0x89a23090 _EXCEPTION_RECORD
+0x00c ExceptionAddress : 0x89a23090
+0x010 NumberParameters : 0x89a64558
+0x014 ExceptionInformation : [15] 0x89a64558

1: kd> dt _CONTEXT 805d220a
nt!_CONTEXT
+0x000 ContextFlags : 0x6d726554
+0x004 Dr0 : 0x74616e69
+0x008 Dr1 : 0x20676e69
+0x00c Dr2 : 0x74697263
+0x010 Dr3 : 0x6c616369
+0x014 Dr6 : 0x6f727020
+0x018 Dr7 : 0x73736563
+0x01c FloatSave : _FLOATING_SAVE_AREA
+0x08c SegGs : 0x248
+0x090 SegFs : 0x200140f6
+0x094 SegEs : 0x74084589
+0x098 SegDs : 0x74868d12
+0x09c Edi : 0x50000001
+0x0a0 Esi : 0x220a6856
+0x0a4 Ebx : 0x87e8805d
+0x0a8 Edx : 0x8dfffff0
+0x0ac Ecx : 0x808e
+0x0b0 Eax : 0xf44d8900
+0x0b4 Ebp : 0x3994be8
+0x0b8 Eip : 0x75c08400
+0x0bc SegCs : 0xe8ce8b11
+0x0c0 EFlags : 0xfff546b8
+0x0c4 Esp : 0x10ab8
+0x0c8 SegSs : 0xa4e9c0
+0x0cc ExtendedRegisters : [512] ""

大侠们帮看看。

分成两个分卷进行压缩 《Ubuntu权威指南》目录 目  录 第1章 系统概述与安装 1 1.1 Linux的兴起与发展 2 1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2章 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面环境 20 2.2 GNOME桌面环境浏览 21 2.2.1 GNOME菜单面板 21 2.2.2 GNOME桌面区 24 2.2.3 GNOME窗口面板 26 2.3 应用程序菜单 27 2.3.1 办公 28 2.3.2 附件 29 2.3.3 互联网 31 2.3.4 图形 33 2.3.5 影音 34 2.3.6 游戏 36 2.3.7 添加/删除软件 36 2.4 位置菜单 36 2.4.1 主文件夹 38 2.4.2 桌面、文档等 39 2.4.3 计算机 39 2.4.4 CD/DVD刻录机 39 2.4.5 磁盘分区 40 2.4.6 网络 40 2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动存储介质 53 2.7 定制GNOME桌面环境 54 2.7.1 定制面板 54 2.7.2 定制桌面背景 54 2.7.3 定制菜单面板 55 第3章 命令行基础知识 56 3.1 命令行结构 57 3.2 后台进程 60 3.3 标准输入/标准输出与标准错误 ?输出 61 3.4 输入/输出重定向 61 3.5 管道 65 3.6 元字符与文件名生成 67 3.7 转义与引用 69 3.8 命令历史 72 3.8.1 fc命令 72 3.8.2 history命令 74 3.8.3 重复执行先前的命令 75 3.8.4 编辑并执行校正后的命令 76 3.8.5 命令行补充 77 3.9 命令别名 79 3.10 作业控制 81 3.11 会话记录与命令确认 83 3.11.1 保存会话记录 83 3.11.2 确保使用的命令是 ??正确的 84 第4章 文件系统基础知识 86 4.1 文件系统的层次结构 87 4.1.1 树形层次结构 87 4.1.2 路径名 88 4.2 文件系统的组织结构 88 4.3 文件的类型 92 4.3.1 普通文件 92 4.3.2 目录文件 94 4.3.3 特殊文件 95 4.3.4 链接文件 98 4.3.5 符号链接文件 99 4.3.6 管道文件 101 4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4 递归地列出文件 112 5.3 显示文件内容 113 5.3.1 使用cat命令显示文件 113 5.3.2 使用more命令分页显示 文件 113 5.3.3 使用less命令分页显示 文件 114 5.3.4 使用head命令显示文件 前几行内容 115 5.3.5 使用tail命令显示文件 最后几行内容 116 5.4 复制文件 116 5.5 移动文件 117 5.6 删除文件 118 5.7 显示当前工作目录 119 5.8 改换目录 119 5.9 创建目录 121 5.10 移动目录 121 5.11 复制目录 121 5.12 删除目录 122 5.13 比较文件之间的差别 123 5.13.1 使用diff命令比较两个 ??文件 123 5.13.2 使用diff3命令比较3个 ??文件 123 5.14 从系统中检索文件 124 5.14.1 简单检索 126 5.14.2 使用逻辑运算符 126 5.14.3 利用find命令本身实现 ??其他处理功能 126 5.14.4 利用管道实现其他 ??处理功能 127 5.15 检索文件内容 127 5.15.1 利用grep检索文件 ??内容 127 5.15.2 过滤其他命令的输出 ??数据 128 5.15.3 使用grep检索多个文件 128 5.15.4 检索不包含特定字符 ??串的文本行 129 5.15.5 在grep中使用正则 ??表达式 129 5.15.6 检索元字符本身 131 5.15.7 在命令行中使用引号 131 5.16 排序 132 第6章 编辑文件 133 6.1 启动vim编辑器 134 6.1.1 创建文件 134 6.1.2 状态行 135 6.2 vim编辑器的两种工作模式 135 6.2.1 输入模式 135 6.2.2 命令模式 135 6.3 保存编辑的文件并退出vim 136 6.4 vim编辑器的基本命令 137 6.4.1 移动光标位置 137 6.4.2 输入文本 138 6.4.3 修改与替换文本 138 6.4.4 撤销先前的修改 139 6.4.5 删除文本 139 6.4.6 复制、删除与粘贴文本 140 6.4.7 按指定的数量重复执行 命令 141 6.5 使用ex命令 141 6.5.1 显示行号 141 6.5.2 多行复制 142 6.5.3 移动文本行 142 6.5.4 删除文本行 142 6.6 检索与替换 142 6.6.1 检索字符串 142 6.6.2 模式检索 143 6.6.3 替换字符串 144 6.7 编辑多个文件 145 6.7.1 编辑多个文件 145 6.7.2 合并文件与合并文本行 145 6.8 定制vim编辑器的运行环境 145 6.8.1 临时设定vim的运行 环境 145 6.8.2 永久性地定制vim的 运行环境 148 6.9 其他特殊说明 148 6.9.1 删除或替换特殊字符 148 6.9.2 在编辑期间运行Linux 命令 149 6.10 vim编辑器命令总结 149 第7章 Shell基础知识 153 7.1 引言 154 7.1.1 为什么需要Shell编程 154 7.1.2 什么是Shell脚本 155 7.1.3 运行Shell脚本 155 7.1.4 退出与出口状态 156 7.1.5 调用适当的Shell解释 程序 158 7.1.6 位置参数 159 7.2 变量与变量替换 161 7.2.1 变量分类 162 7.2.2 变量的赋值 162 7.2.3 内部变量 163 7.2.4 变量的引用与替换 165 7.2.5 变量的间接引用 167 7.2.6 特殊的变量替换 167 7.2.7 变量声明与类型定义 170 7.3 命令与命令替换 171 7.3.1 Shell内部命令 171 7.3.2 部分命令介绍 174 7.3.3 命令替换 183 7.4 test语句 185 7.4.1 文件测试运算符 186 7.4.2 字符串测试运算符 187 7.4.3 整数值测试运算符 188 7.4.4 逻辑运算符 189 7.5 命令行的解释执行过程 190 7.5.1 读取命令行 191 7.5.2 命令历史替换 191 7.5.3 别名替换 192 7.5.4 花括号扩展 192 7.5.5 波浪号替换 192 7.5.6 I/O重定向 193 7.5.7 变量替换 194 7.5.8 算术运算结果替换 195 7.5.9 命令替换 195 7.5.10 单词解析 195 7.5.11 文件名生成 196 7.5.12 引用字符处理 197 7.5.13 进程替换 197 7.5.14 环境处理 198 7.5.15 执行命令 198 7.5.16 跟踪执行过程 199 第8章 Shell高级编程 200 8.1 if条件语句 201 8.1.1 if语句的表现形式 201 8.1.2 嵌套的if-then 条件测试 202 8.1.3 if-then结构参考 204 8.2 case分支语句 205 8.3 for循环语句 207 8.4 while循环语句 210 8.5 until循环语句 212 8.6 select循环语句 213 8.7 嵌套的循环 214 8.8 循环控制与辅助编程命令 215 8.8.1 break和continue命令 215 8.8.2 true命令 217 8.8.3 sleep命令 217 8.8.4 shift命令 217 8.8.5 getopt命令 218 8.8.6 getopts命令 219 8.9 循环语句的I/O重定向 221 8.9.1 while循环的I/O重定向 221 8.9.2 until循环的I/O重定向 222 8.9.3 for循环的I/O重定向 222 8.10 Here文档 223 8.11 Shell函数 227 8.12 逻辑与和逻辑或并列结构 232 8.12.1 逻辑与命令并列结构 232 8.12.2 逻辑或命令并列结构 233 8.13 Shell数组 233 8.14 信号的捕捉与处理 238 8.15 其他Shell课题 241 8.15.1 子Shell 241 8.15.2 Shell脚本的调试 242 8.15.3 系统性能考虑 246 第9章 进程管理 248 9.1 ps命令概述 249 9.2 查询进程及其状态信息 251 9.2.1 查询当前活动的进程 251 9.2.2 查询系统中的所有进程 251 9.2.3 显示进程的重要状态 信息 252 9.2.4 显示进程的详细状态 信息 253 9.2.5 显示进程间的调用关系 253 9.2.6 pstree命令 254 9.3 监控进程及系统资源 255 9.4 终止进程的运行 259 9.5 调整分时进程的优先级 261 9.5.1 nice命令 261 9.5.2 renice命令 263 9.5.3 调整进程优先级的作用 263 第10章 proc文件系统 265 10.1 进程内存映像文件 266 10.2 系统配置信息 270 10.3 系统运行状态信息 273 10.4 系统可调参数 276 10.4.1 文件系统可调参数 277 10.4.2 系统内核可调参数 277 10.4.3 sysctl命令 281 10.5 其他重要的子目录 282 第11章 磁盘空间管理 285 11.1 查询磁盘空间信息 286 11.1.1 常用的磁盘空间 ??管理工具 286 11.1.2 使用df命令检查磁盘 ??空间的使用情况 286 11.1.3 使用du命令检查目录 ??占用的存储空间 289 11.1.4 使用find命令找出超过 ??一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 11.1.7 使用ls命令检测文件的 ??大小 292 11.2 采用标准工具备份与恢复数据 292 11.2.1 利用cpio实现备份和 ??恢复 294 11.2.2 利用tar实现备份和 ??恢复 298 11.2.3 利用dd实现文件系统的 ??原样复制 304 11.3 采用专用工具备份与恢复数据 305 11.3.1 利用dump命令实现数据的 ??备份 306 11.3.2 利用restore命令实现 ??数据的恢复 308 11.4 文件系统限额管理 310 11.4.1 限额概述 310 11.4.2 设置限额 312 11.4.3 限额的维护 315 第12章 软件管理 318 12.1 软件管理概述 319 12.1.1 软件维护工具 319 12.1.2 软件管理基本概念 319 12.2 利用apt-get管理软件包 321 12.2.1 安装软件包 323 12.2.2 系统的更新与升级 324 12.2.3 删除软件包 325 12.2.4 安装本地存储介质中的 ??软件包 325 12.2.5 sources.list配置文件 325 12.3 利用aptitude管理软件包 327 12.3.1 安装软件包 329 12.3.2 系统的升级 330 12.3.3 查询软件包 330 12.3.4 检索软件包 330 12.3.5 删除软件包 332 12.3.6 图形界面 333 12.4 synaptic图形界面软件管理 工具 333 12.4.1 浏览软件包 335 12.4.2 安装软件包 335 12.4.3 删除软件包 336 12.4.4 软件升级 337 12.5 GNOME软件增删工具 338 12.6 软件包的自动更新 339 第13章 用户管理 341 13.1 增加与删除用户 342 13.1.1 /etc/passwd文件 342 13.1.2 /etc/shadow文件 343 13.1.3 用户管理实例 344 13.2 定制用户的工作环境 349 13.2.1 选择命令解释程序 349 13.2.2 设置用户初始化文件 351 12.2.3 定制Shell工作环境 353 13.3 增加与删除用户组 359 13.4 监控用户 360 13.4.1 利用who命令查询 ??系统中的用户 361 13.4.2 利用finger命令查询 ??系统中的用户 362 13.4.3 利用w命令查询系统 ??中的用户活动 362 13.4.4 向注册用户发送消息 362 13.5 插件式认证模块 363 13.5.1 配置文件、模块类型与 ??控制标志 363 13.5.2 修改PAM配置文件 366 13.6 超级用户与sudo命令 366 13.6.1 超级用户的访问控制 367 13.6.2 利用sudo运行特权 ??命令 368 13.6.3 sudoers配置文件 369 13.6.4 admin用户组成员的 ??访问权限 373 13.6.5 直接使用root注册 373 13.6.6 以不同的用户身份 ??访问系统 373 第14章 系统启动与关机 375 14.1 磁盘分区与GRUB 376 14.1.1 磁盘分区 376 14.1.2 GRUB 378 14.1.3 GRUB配置文件 379 14.1.4 安装或修复GRUB 381 14.2 初始引导过程 383 14.2.1 GRUB引导过程概述 384 14.2.2 补充说明 386 14.3 系统生成过程 386 14.3.1 基本概念 388 14.3.2 init进程与/etc/event.d ??目录 391 14.3.3 启动用户定义的应用 ??程序 394 14.4 Login进程 395 14.4.1 login进程与passwd ??文件 395 14.4.2 Shell进程与profile ??文件 395 14.5 系统关机过程 396 14.5.1 使用shutdown命令 ??关闭系统 396 14.5.2 使用init命令关闭系统 397 14.5.3 使用其他命令关机 397 第15章 作业调度与系统日志 398 15.1 定时运行后台作业 399 15.1.1 cron守护进程的 ??调度过程 399 15.1.2 at作业与atd守护进程 400 15.1.3 调度错失执行时间 ??的任务 401 15.2 调度重复执行的任务 402 15.2.1 crontab文件的工作原理 402 15.2.2 创建和编辑crontab ??文件 404 15.2.3 显示crontab文件 405 15.2.4 删除crontab文件 405 15.2.5 crontab命令的访问控制 405 15.2.6 应用实例—数据库 ??定时备份 406 15.3 调度一次性执行的作业 407 15.3.1 提交at作业 408 15.3.2 显示at作业及作业队列 409 15.3.3 删除at作业 409 15.3.4 at命令的访问控制 409 15.3.5 应用实例—系统 ??定时关机 410 15.4 系统日志 411 15.4.1 系统日志文件 412 15.4.2 应用程序日志文件 413 15.4.3 无法直接查阅的日志 413 15.4.4 系统日志守护进程 414 第16章 文件系统内部组织 417 16.1 文件系统的组织结构 418 16.1.1 引导块 419 16.1.2 数据块组 419 16.2 超级块 422 16.3 信息节点 424 16.3.1 文件的类型与访问权限 426 16.3.2 数据块地址数组 426 16.3.3 符号链接文件 427 16.3.4 特权标志位 427 16.4 信息节点与目录及文件的关系 428 16.4.1 目录文件 428 16.4.2 目录、文件和信息节点 ???三者之间的关系 429 第17章 文件系统管理 431 17.1 划分磁盘分区 432 17.2 创建文件系统 434 17.2.1 mkfs或mke2fs命令 ??介绍 434 17.2.2 创建Ext2/Ext3文件 ??系统 436 17.3 调整文件系统 437 17.4 安装与卸载文件系统 439 17.4.1 安装文件系统概述 439 17.4.2 mount命令 440 17.4.3 /etc/fstab文件 441 17.4.4 安装文件系统 442 17.4.5 卸载文件系统 444 17.5 检测与修复文件系统 446 17.5.1 何时需要检测文件系统 447 17.5.2 文件系统检测的内容 448 17.5.3 交互地检测与修复 ??文件系统 452 17.5.4 自动检测与修复文件 ??系统 453 17.5.5 恢复严重受损的超级块 454 17.5.6 解决fsck命令无法修复 ??的文件系统问题 454 17.5.7 fsck的阶段处理方式 455 17.6 调试文件系统 458 17.6.1 概述 458 17.6.2 交互式调试子命令 459 17.6.3 应用举例1—恢复 ??误删的文件 464 17.6.4 应用举例2—恢复 ??误删的文件 465 17.7 其他文件系统维护工具 467 17.7.1 dumpe2fs命令 467 17.7.2 e2image命令 468 第18章 TCP/IP网络管理 470 18.1 TCP/IP简介 471 18.1.1 TCP/IP的层次结构 471 18.1.2 TCP/IP如何处理数据 ??通信 473 18.2 网络接口设置 475 18.2.1 以太网络设置 475 18.2.2 ADSL网络连接 480 18.3 主机名字解析 483 18.4 网络路由设置 484 18.5 配置网络服务 485 18.6 网络管理与维护 487 18.6.1 使用ifconfig命令维护 ??网络接口 487 18.6.2 使用netstat命令监控 ??网络状态 489 18.6.3 使用ping命令测试远程 ??主机的连通性 494 18.6.4 使用ping命令检测网络 ??主机的性能 495 18.6.5 使用ftp命令检测网络 ??主机的传输性能 496 18.6.6 使用traceroute命令跟踪 ??路由信息 496 18.6.7 利用tcpdump捕捉、分析 ??网络分组数据 497 第19章 TCP/IP网络应用 501 19.1 OpenSSH 502 19.1.1 安装OpenSSH服务器 502 19.1.2 /etc/ssh/sshd_config ??配置文件 502 19.1.3 使用SSH注册到 ??远程系统 505 19.1.4 使用ssh执行远程系统 ??中的命令 506 19.1.5 使用SCP替代FTP 506 19.1.6 使用SFTP替代FTP 507 19.1.7 SSH与SCP的无 ??密码注册 508 19.1.8 OpenSSH的安全考虑 510 19.2 Telnet远程注册 510 19.2.1 设置Telnet服务器 511 19.2.2 Telnet服务器的安全 ??考虑 512 19.3 FTP文件传输 513 19.3.1 设置vsftpd 513 19.3.2 vsftpd.conf配置文件 513 19.3.3 FTP安全考虑 517 19.3.4 FTP应用 518 19.3.5 FTP自动注册 519 第20章 DNS域名服务器 521 20.1 DNS基本概念 522 20.1.1 域与区 522 20.1.2 DNS域名服务器 523 20.1.3 DNS域名与地址解析 524 20.2 DNS配置文件 526 20.2.1 resolv.conf文件 527 20.2.2 named.conf配置文件 528 20.2.3 区配置文件 532 20.2.4 DNS资源记录 533 20.3 DNS服务器配置过程 537 20.3.1 设置resolv.conf配置 ??文件 537 20.3.2 设置named.conf配置 ??文件 537 20.3.3 设置正向区配置文件 538 20.3.4 设置反向区配置文件 539 20.3.5 DNS视图 540 20.3.6 检测配置文件 543 20.4 测试DNS服务器 544 20.4.1 验证DNS服务器 544 20.4.2 dig命令 545 第21章 NFS网络文件系统 548 21.1 NFS简述 549 21.2 配置NFS服务器 550 21.2.1 安装NFS服务器 ??软件包 550 21.2.2 /etc/exports文件 551 21.2.3 采用图形界面配置NFS ??共享资源 553 21.2.4 验证NFS共享资源的 ??配置 555 21.3 配置NFS客户系统 557 21.3.1 安装远程文件系统 557 21.3.2 设置/etc/fstab文件 558 21.4 NFS自动安装 559 21.4.1 主映射文件 559 21.4.2 直接映射文件 560 21.4.3 间接映射文件 560 21.5 NFS故障修复 561 21.5.1 基本工具 561 21.5.2 其他注意事项 564 第22章 amba资源共享 565 22.1 安装Samba服务器 566 22.2 smb.conf配置文件 567 22.2.1 smb.conf配置文件概述 568 22.2.2 Global节 569 22.2.3 homes节 572 22.2.4 printers节 574 22.3 快速设置Samba服务器 575 22.3.1 设定Samba服务器的 ??工作组或域 575 22.3.2 设置Samba用户认证 ??信息 576 22.3.3 共享用户主目录 577 22.3.4 共享其他目录 577 22.3.5 共享打印机 578 22.3.6 验证Samba配置文件 579 22.4 Samba运行环境测试 580 22.4.1 在Linux系统中测试 ??Samba服务器 580 22.4.2 从Windows系统中 ??连接Samba服务器 583 22.5 访问共享资源 584 22.5.1 从Windows系统中访问 ??Samba服务器 584 22.5.2 从Linux系统中访问 Windows服务器 585 第23章 Apache服务器 588 23.1 Apache服务器概述 589 23.2 启动Apache服务器 589 23.2.1 Apache软件包的目录 ??结构 589 23.2.2 apache2守护进程 590 23.2.3 设置Apache启动脚本 591 23.2.4 Apache模块 592 23.3 配置Apache服务器 592 23.3.1 Apache配置文件 593 23.3.2 .htaccess文件 594 23.3.3 配置指令 594 23.4 用户目录 599 23.4.1 利用UserDir设定 ??目录路径 600 23.4.2 限定用户目录的使用 600 23.4.3 开放用户CGI目录 600 23.5 虚拟主机 601 23.5.1 配置基于主机名的虚拟 主机 602 23.5.2 配置基于IP地址的 ??虚拟主机 603 23.5.3 利用不同的IP地址提供 ??相同的网站服务 604 23.5.4 利用不同的端口提供 ??不同的网站服务 604 23.6 利用CGI提供动态内容服务 605 23.6.1 启用CGI程序 605 23.6.2 编写CGI程序 606 23.6.3 CGI的安全考虑与 ??suexec 608 23.6.4 Apache与LAMP 609 23.7 用户认证 610 23.7.1 用户认证的实现 610 23.7.2 用户认证方法的补充 ??说明 612 23.8 日志文件 613 23.8.1 错误日志文件 614 23.8.2 访问日志文件 615 23.8.3 虚拟主机日志 617 第24章 MySQL数据库 618 24.1 安装与配置MySQL数据库 619 24.1.1 安装MySQL数据库 619 24.1.2 my.cnf配置文件 619 24.1.3 MySQL数据库命令行 界面 621 24.1.4 MySQL数据库图形界面 622 24.1.5 设置数据库用户及其 ??访问权限 624 24.2 访问MySQL数据库 624 24.2.1 创建、查询、使用与删除 数据库 624 24.2.2 创建、查询与删除数 据库表 625 24.2.3 录入数据 626 24.3 查询MySQL数据库 627 24.3.1 查询数据库表 627 24.3.2 查询数据库表结构 628 24.3.3 查询数据库表中的数据 内容 628 24.4 SQL脚本与批处理 628 24.5 MySQL数据库 630 24.5.1 数据库备份方法 630 24.5.2 MySQL数据库备份 631 24.5.3 MySQL数据库恢复 632 24.5.4 MySQL数据库表的 备份与恢复 633 24.5.5 增量备份与恢复 633 24.6 密码维护与网络安全 635 24.6.1 维护数据库管理员密码 635 24.6.2 恢复数据库管理员密码 636 24.6.3 基本网络安全考虑 637 参考文献 638
分成两个分卷进行压缩 《Ubuntu权威指南》目录 目  录 第1章 系统概述与安装 1 1.1 Linux的兴起与发展 2 1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2章 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面环境 20 2.2 GNOME桌面环境浏览 21 2.2.1 GNOME菜单面板 21 2.2.2 GNOME桌面区 24 2.2.3 GNOME窗口面板 26 2.3 应用程序菜单 27 2.3.1 办公 28 2.3.2 附件 29 2.3.3 互联网 31 2.3.4 图形 33 2.3.5 影音 34 2.3.6 游戏 36 2.3.7 添加/删除软件 36 2.4 位置菜单 36 2.4.1 主文件夹 38 2.4.2 桌面、文档等 39 2.4.3 计算机 39 2.4.4 CD/DVD刻录机 39 2.4.5 磁盘分区 40 2.4.6 网络 40 2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动存储介质 53 2.7 定制GNOME桌面环境 54 2.7.1 定制面板 54 2.7.2 定制桌面背景 54 2.7.3 定制菜单面板 55 第3章 命令行基础知识 56 3.1 命令行结构 57 3.2 后台进程 60 3.3 标准输入/标准输出与标准错误 ?输出 61 3.4 输入/输出重定向 61 3.5 管道 65 3.6 元字符与文件名生成 67 3.7 转义与引用 69 3.8 命令历史 72 3.8.1 fc命令 72 3.8.2 history命令 74 3.8.3 重复执行先前的命令 75 3.8.4 编辑并执行校正后的命令 76 3.8.5 命令行补充 77 3.9 命令别名 79 3.10 作业控制 81 3.11 会话记录与命令确认 83 3.11.1 保存会话记录 83 3.11.2 确保使用的命令是 ??正确的 84 第4章 文件系统基础知识 86 4.1 文件系统的层次结构 87 4.1.1 树形层次结构 87 4.1.2 路径名 88 4.2 文件系统的组织结构 88 4.3 文件的类型 92 4.3.1 普通文件 92 4.3.2 目录文件 94 4.3.3 特殊文件 95 4.3.4 链接文件 98 4.3.5 符号链接文件 99 4.3.6 管道文件 101 4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4
《Ubuntu权威指南》目录 目  录 第1章 系统概述与安装 1 1.1 Linux的兴起与发展 2 1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更新 16 第2章 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面环境 20 2.2 GNOME桌面环境浏览 21 2.2.1 GNOME菜单面板 21 2.2.2 GNOME桌面区 24 2.2.3 GNOME窗口面板 26 2.3 应用程序菜单 27 2.3.1 办公 28 2.3.2 附件 29 2.3.3 互联网 31 2.3.4 图形 33 2.3.5 影音 34 2.3.6 游戏 36 2.3.7 添加/删除软件 36 2.4 位置菜单 36 2.4.1 主文件夹 38 2.4.2 桌面、文档等 39 2.4.3 计算机 39 2.4.4 CD/DVD刻录机 39 2.4.5 磁盘分区 40 2.4.6 网络 40 2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动存储介质 53 2.7 定制GNOME桌面环境 54 2.7.1 定制面板 54 2.7.2 定制桌面背景 54 2.7.3 定制菜单面板 55 第3章 命令行基础知识 56 3.1 命令行结构 57 3.2 后台进程 60 3.3 标准输入/标准输出与标准错误 ?输出 61 3.4 输入/输出重定向 61 3.5 管道 65 3.6 元字符与文件名生成 67 3.7 转义与引用 69 3.8 命令历史 72 3.8.1 fc命令 72 3.8.2 history命令 74 3.8.3 重复执行先前的命令 75 3.8.4 编辑并执行校正后的命令 76 3.8.5 命令行补充 77 3.9 命令别名 79 3.10 作业控制 81 3.11 会话记录与命令确认 83 3.11.1 保存会话记录 83 3.11.2 确保使用的命令是 ??正确的 84 第4章 文件系统基础知识 86 4.1 文件系统的层次结构 87 4.1.1 树形层次结构 87 4.1.2 路径名 88 4.2 文件系统的组织结构 88 4.3 文件的类型 92 4.3.1 普通文件 92 4.3.2 目录文件 94 4.3.3 特殊文件 95 4.3.4 链接文件 98 4.3.5 符号链接文件 99 4.3.6 管道文件 101 4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4 递归地列出文件

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧