游乐游手机版
首页/系统平台/文章详情

Solaris根目录误删文件恢复方法

时间:2026-06-19 07:52
记得刚接触UNIX那会儿,学会了rm命令,紧接着就学会了rm -rf *——这大概是很多人的必经之路。UNIX设计哲学里,删除操作默认不做任何提示(除非你用alias把rm绑成rm -i)。对新手来说,这个坑特别容易踩,而且后果可能很严重。以前在AIX上不小心把 目录删掉大半,等按Ctrl+C时已经

记得刚接触UNIX那会儿,学会了rm命令,紧接着就学会了rm -rf *——这大概是很多人的必经之路。UNIX设计哲学里,删除操作默认不做任何提示(除非你用alias把rm绑成rm -i)。对新手来说,这个坑特别容易踩,而且后果可能很严重。以前在AIX上不小心把/目录删掉大半,等按Ctrl+C时已经晚了。还好那台机器没什么重要数据,最后只能重装系统。从那以后,印象中这类事故基本上只有重装这一条路。

但最近又碰上了类似的事,这次可没那么简单——机器是双机热备的主机,挂着磁阵,上面跑着SC、Veritas,还有数据库。不过这次尝试了重装以外的办法,花了两个小时(包括查资料的时间)搞定了。场景是这样的:一位高手在电脑前以无影手的速度敲键盘,突然停下来,伴着一声惨叫:“啊,怎么当前目录在根目录下!”他刚输入的就是UNIX杀手锏——rm -rf *。看了一眼,好像只是bin目录没了——那个bin其实是个符号链接,指向/usr/bin。重新建一个链接不就行了?以为天下太平了。下午修改配置后重启机器,平时几分钟就起来,这次等了半天也连不上。用串口线连上去一看,系统已经进入OK状态。把auto-reboot参数改成true,再输入go,几分钟没反应。重启了几次都没用——问题严重了。以前用Windows时,中病毒或系统变慢就重装,现在家里电脑早就换成Linux了,没那种烦恼了。废话少说:把Solaris安装盘放进光驱,在OK状态输入boot cdrom -sw,用光盘引导启动进入操作系统。

思路很直接:把原来的根分区挂载上来,找到丢失的文件,再补回去。具体操作如下:

format命令找到原来根分区所用的磁盘。注意到format里显示的磁盘顺序和正常启动时不一样,只能逐个选中磁盘后用p查询分区和挂载情况。比如发现c1t0d0s1是原来的根分区,退出format

/tmp/root/下新建目录:mkdir /tmp/root/mytmproot,然后挂载:mount /dev/dsk/c1t0d0s1 /tmp/root/mytmproot。为什么挂到/tmp下?因为光盘引导时根分区是只读的,不能直接挂到/

挂载成功后,到/tmp/root/mytmproot检查是不是原来根目录的内容。接下来要找少了哪些文件。用了个土办法:找另一台同样配置的机器,用dudu -s对比每个目录下的文件个数和大小。最终发现/dev/dsk目录没了,/devices下面也少了一些文件。大家都知道这些目录是干什么的——/dev/dsk下都是指向/devices的符号链接。手工重建符号链接?每台机器可能有差异,直接照搬有风险。想起可以用devfsadm -C -r /tmp/root/mytmproot-r选项指定根目录路径。执行完后,/dev/dsk下面的文件都回来了。心想应该差不多了——对比发现就这个目录下的文件被删了。重启后出现一些网卡相关的错误,不管它,直接重启(从硬盘引导)。进去后发现以前配置的网卡都不在了,用ifconfig ce0 plumb提示没有这样的设备。一比较发现/devices下面丢失了一些网卡设备文件。进入OK状态,输入probe-scsi-all,再输入watch-net-all,然后power-off,重新启动后硬件重新检测,之前丢失的设备文件都回来了。至此所有问题解决。

这个问题比较特殊——因为删除的文件刚好是设备文件。希望能起个抛砖引玉的作用吧。

来源:https://www.jb51.net/os/Solaris/1653.html
上一篇Solaris溢出防范实用方法指南 下一篇Solaris服务器多网卡配置指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送