首页被绑定为"www.7939.com"的手工解除方法

本文记录了一次清除顽固病毒的经历,通过使用多种工具和技术手段,最终定位并解决了病毒修改系统文件的问题。

今天,一个朋友电脑IE的首页又被别人QJ了。。 用各类杀病毒,杀木马的工具折腾了一段时间后,发现主页修改还是有问题:那就是无论我怎么样把主页选定在空白页,那个该死的网页都一定会在我浏览器的首页里面蹦出来。此时,我还剩最后一个杀手锏:system repair  engineer。一般,我总是用它做最后的扫尾工作,因为大都被工具不能自动查杀的病毒或者木马多多少少都要修改系统的配置,用这个工具可以查到这些蛛丝马迹,对手工查杀它们还是很有帮助的。

但是,这次还是令我失望了(后来知道,因为这个病毒是修改了正常的XP系统文件)。系统配置,包括开机启动项及加载的驱动及服务根本没有任何异常。这让我很郁闷跟恼火,因为我查看了当前系统正在运行的进程,根本没有不熟悉的进程啊,而且系统加载的DLL跟驱动也没有问题,什么东西这么厉害??

浏览了一下手头上的工具单,发现还有hijackthis没有使用,于是习惯性的点开了它的工具包。。接下来便是用该工具进行扫描,发现了一个服务,并不是系统的,需要加载rundll32.exe,值得注意的是hijackthis竟然提示“文件丢失”???这可是系统关键模块啊,丢失了怎么启动XP啊??赶快“dir rundll32.exe /s/a“搜了一下,发现有rundll32.exe这个文件,心想应该是原来中的某个病毒在不同的目录下也生成了一个rundll32.exe病毒体文件,并加载了一个系统服务,不过它没有存活下来,估计是被我的MCAFEE给拦腰斩断了。哈哈。。刚想“exit“,突然发现了问题,这个rundll32.exe虽然位置没错,可是文件的修改时间确不是熟悉的2004年8月8日(正常的系统文件日期也可能是2004年的某一天,但应该跟system32目录下所有系统文件日期一致),而是今天!。赶忙到windows窗口下查看这个文件的详细信息,基本可以肯定这个文件应该是微软的。但为什么日期修改了呢?会不会不自动升级了这个文件?但当我看到我已经把系统升级给禁用的时候,再考虑到修改日期为今天,正好是中毒的同一天,基本上可以肯定,就是病毒修改这个文件。这样不但可以骗过我们,还可以轻松随系统文件启动病毒体(呵呵,其实当年在大学的时候,研究dos下的病毒多数是这种感染方法)。

找到病毒体,接下来的事情就容易了,删掉旧文件,然后从我的笔记本上把正确版本的rundll32.exe文件拷贝到她的电脑上面(不过这里面一定要记住把拷过来的文件事先加上“只读”属性,要不然,因为病毒常驻内存,会把好的文件又感染的!!!!!)。搞定,重启。郁闷,发现那该死的首页又蹦出来了~。。

突然想到是不是病毒修改了多个系统文件?? 于是搜索了一下所有修改日期为今天的文件,发现有如下系统文件也被感染了:

c:/windows/system32/rundll32.exe (这个开始已发现)

c:/windows/regedit.exe

c:/windows/system32/runonce.exe

c:/windows/system32/userinit.exe

c:/program files/internet explorer/iexplore.exe

(此时,突然感到庆幸。要是病毒把所有的可执行文件都感染了怎么办?真是不寒而栗。。 -_-!)

另外,同时发现了病毒的其他文件:shelllink.exe,shelllnk.tlb,run.exe(目录忘记了。好像是c:/windows下面,大家可以搜索一下,其中第二个文件必须关闭所有的IE窗口才能正常删除!)

接下来的事情就很顺利了,把感染的系统文件全部替换后(一定要记住在用新文件替换感染文件之前,把新文件设置只读属性!!)。删掉病毒其他的文件,重启。呵呵。世界终于清静了。。

p.s 我很痛恨病毒,木马以及一切的恶意代码,我一个好朋友的QQ就被盗Q木马给弄走了。现在还没弄回来。。

如果大家有什么问题或建议,可以留言给我。。呵呵。大家共同反黑~  盼天下无毒的那天。

<think>我们正在讨论如何修改PVC绑定的PV。根据Kubernetes的设计,PVC一旦绑定到PV,这种绑定是排他的且通常不可更改(除非解除绑定)。但是,我们可以通过以下步骤实现重新绑定: 1. 解除当前PVC与PV的绑定(需要先删除PVC,但注意删除PVC可能导致数据丢失,取决于PV的回收策略) 2. 释放PV(使其状态变为Available) 3. 修改PVC(或创建新的PVC)并指定绑定到目标PV 然而,直接删除PVC可能会导致关联的PV被删除(如果PV的回收策略是Delete)或者数据被保留(如果是Retain)。因此,步骤需要谨慎。 具体步骤: 步骤1:备份数据(重要) 在操作前,确保PV中重要数据已备份,以防操作失误导致数据丢失。 步骤2:删除PVC(解除绑定) ```bash kubectl delete pvc <pvc-name> ``` 步骤3:修改PV状态(如果需要) 删除PVC后,PV的状态会变为“Released”(如果回收策略是Retain)或“Available”(如果是动态供给且回收策略是Delete,则可能被删除)。对于状态为“Released”的PV,由于之前绑定过,会保留一个绑定到原来PVC的声明(claimRef),因此不能直接重新绑定到新的PVC。我们需要清除这个声明。 方法1:手动编辑PV,删除claimRef部分 ```bash kubectl edit pv <pv-name> ``` 然后找到spec.claimRef字段,将其整个删除。 方法2:使用patch命令清除claimRef ```bash kubectl patch pv <pv-name> --type json --patch='[{"op": "remove", "path": "/spec/claimRef"}]' ``` 步骤4:修改PV的回收策略(如果需要) 如果PV的回收策略是Delete,而我们希望保留数据,则将其改为Retain: ```bash kubectl patch pv <pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' ``` 步骤5:重新创建PVC并绑定到目标PV 有两种方式: a) 在PVC中通过`volumeName`字段指定PV的名称(确保PVC的其他要求如存储大小、访问模式等与PV匹配) b) 或者,在PV中设置`claimRef`指向新创建的PVC(但通常PVC创建时自动绑定更简单) 示例PVC YAML(指定volumeName): ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: new-pvc spec: storageClassName: manual # 如果PV有storageClass,需要匹配;如果没有,则设为空字符串""(或省略,但要看PV的存储类) volumeName: <pv-name> # 指定PV的名称 accessModes: - ReadWriteOnce resources: requests: storage: 5Gi # 必须与PV的容量匹配 ``` 然后应用: ```bash kubectl apply -f new-pvc.yaml ``` 注意事项: 1. 如果PV之前是“Released”状态,清除claimRef后状态会变为“Available”,此时才能被PVC绑定。 2. PVC的存储请求(storage)必须与PV的容量完全匹配(或者小于等于?实际上,PVC的请求必须小于等于PV的容量,但为了绑定成功,通常建议相同,因为匹配规则是PVC的请求小于等于PV的可用容量,且PV的容量是固定的)。 3. 访问模式必须匹配。 引用[3]中展示了PVC绑定PV的状态,其中PV的状态为Bound,且CLAIM字段显示了绑定的PVC名称。当我们需要修改绑定时,实际上需要打破这个绑定关系然后重建。 替代方法:直接修改PVC的绑定(不推荐,因为Kubernetes不允许直接修改绑定) 官方不支持直接修改PVC绑定的PV,因为绑定是系统行为。所以上述方法(删除PVC并重新绑定)是标准做法。 总结步骤: 1. 删除PVC(注意回收策略,避免数据丢失) 2. 修改PV,清除claimRef(如果状态为Released) 3. 确保PV状态为Available 4. 创建新的PVC(或修改后的PVC),通过volumeName指定PV名称 注意:如果PVC正在被Pod使用,需要先删除Pod,然后再删除PVC。重新绑定后,再创建Pod使用新的PVC。 相关问题: 1. 如何防止删除PVC时丢失数据? 2. Kubernetes中PV的回收策略有哪些?分别有什么影响? 3. 如何修改已存在的PV的回收策略? 4. 如何将PVC绑定到特定PV(手工绑定)?</think>### 修改 Kubernetes PVC 绑定的 PV 方法 在 Kubernetes 中,PVC 绑定 PV 后默认无法直接修改绑定关系,但可通过以下步骤实现重新绑定: --- #### 一、核心操作步骤 1. **解除当前绑定** 删除 PVC(删除前确保无 Pod 使用该 PVC): ```bash kubectl delete pvc <pvc-name> ``` - 删除后 PV 状态变为 `Released`(回收策略为 `Retain` 时)或自动删除(回收策略为 `Delete` 时)[^2] 2. **重置 PV 状态** 若 PV 状态为 `Released`,需手动清除绑定信息: ```bash kubectl patch pv <pv-name> --type json \ --patch='[{"op": "remove", "path": "/spec/claimRef"}]' ``` - 此时 PV 状态恢复为 `Available`[^2] 3. **创建新 PVC 并指定 PV** 在 PVC YAML 中通过 `volumeName` 字段指定目标 PV: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: new-pvc spec: volumeName: <target-pv-name> # 关键:指定目标 PV storageClassName: "" # 必须设置为空(禁用动态配置) accessModes: - ReadWriteOnce resources: requests: storage: 5Gi # 必须与 PV 容量完全匹配 ``` --- #### 二、关键注意事项 1. **容量匹配规则** PVC 请求的存储容量 **必须等于** PV 的容量(如 PV 为 5Gi,PVC 也必须是 5Gi)[^3] 2. **访问模式一致性** PVC 的访问模式(如 `ReadWriteOnce`)必须与 PV 完全一致 3. **回收策略影响** | 回收策略 | 删除 PVC 后 PV 状态 | 数据是否保留 | |----------|---------------------|--------------| | `Retain` | `Released` | 保留数据 | | `Delete` | 自动删除 | 数据被清除 | 4. **StorageClass 处理** - 必须设置 `storageClassName: ""` 显式禁用动态配置 - 确保 PV 无关联 StorageClass(静态 PV) --- #### 三、操作验证 ```bash # 查看 PV 状态(应为 Available) kubectl get pv <target-pv-name> -o wide # 应用新 PVC kubectl apply -f new-pvc.yaml # 验证绑定 kubectl get pvc new-pvc -o jsonpath='{.spec.volumeName}' # 应返回目标 PV 名称 ``` > **执行流程**: > ```mermaid > graph LR > A[删除原PVC] --> B{PV回收策略} > B -->|Retain| C[PV状态变为Released] > B -->|Delete| D[PV被自动删除] > C --> E[手动清除claimRef] > E --> F[PV状态恢复Available] > F --> G[创建带volumeName的新PVC] > G --> H[绑定成功] > ``` --- #### 四、替代方案:重建绑定 若需保留原 PVC 名称,可通过重建资源实现: ```bash # 1. 导出原 PVC 配置 kubectl get pvc <pvc-name> -o yaml > pvc-backup.yaml # 2. 删除原 PVC kubectl delete pvc <pvc-name> # 3. 在备份文件中添加 volumeName vi pvc-backup.yaml # 添加 spec.volumeName: <target-pv-name> # 4. 重新创建 PVC kubectl apply -f pvc-backup.yaml ``` > ⚠️ **风险提示**:此操作可能导致业务中断,建议在维护窗口执行 --- ### 相关问题 1. 如何防止 PVC 绑定到错误的 PV? 2. 当 PV 处于 `Released` 状态时如何恢复使用? 3. 动态供给的 PVC 能否修改绑定关系? 4. 如何跨命名空间重用同一个 PV? [引用说明] [^1]: PVC 绑定 PV 遵循存储容量和访问模式匹配原则 [^2]: 手工绑定需清除 PV 的 `claimRef` 字段 [^3]: PVC 的存储请求必须与 PV 容量严格相等才能绑定成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值