Windows cannot access WD Mybookworld CIFS share problem resolved

我有一台 Windows 10 家庭版的电脑,无法访问 WD Mybookworld CIFS。具体症状是访问 \\wd_ip_address 就被拒绝,但该 IP 地址可以被 ping,也可以访问 WD Mybookworld 的 web UI。

为了找出问题所在,我进行了完整的交叉替换测试。我先试着用它借用一个 IP 访问 WD Mybookworld CIFS,被拒绝,该 IP 在其他电脑上使用正常;然后用它来访问同一网络内的另一台 NAS 下的 CIFS,这是一台自建的 NAS,装的系统是 FreeNAS,可以访问;接着用另一台 Windows 10 家庭版的电脑访问了 \\wd_ip_address,也能访问。所以问题仅限于一台特定的电脑访问特定的 NAS,查看了 WD Mybookworld 里的设置,没找到能拒绝特定 IP 访问的设置,即使有,似乎也不太可能做过这样的限制。

找啊找,最后发现是 Windows 10 “SMB 1.0/CIFS File sharing support” 被关闭了,需要在控制面版 >> 程序和功能 >> 启用或关闭 Windows 功能里重新启用。估计 WD Mybookworld CIFS 用的是 SMB 1.0,而 FreeNAS 用了更高版的 SMB,所以这个 Windows 共享文件夹的问题只影响了特定的机型。

我还是不懂怎么就把这一台 Windows 10 “SMB 1.0/CIFS File sharing support” 给关闭的,反正感觉 Windows 10 毛病挺多的。

List all orphaned files in Google Drive

我们办公室里曾经用 Google Drive 做文件管理,我们需要文件共享、本地编辑、云同步这几个主要的特性。理论上 Google Drive 能做到,但实际使用中并不理想,它只有 Windows 版的同步程序,经常为一个文件同步出好几份拷贝,引起混淆。我觉得病根在于 Windows 和 Linux/Unix 文件结构的差异性,如果有 Linux 版的同步程序会好一些,可是一直没等到。

其实我也太折腾 Google Drive:我把 Google Drive Sync 安装在一台 Windows PC,设定的同步文件夹在 NAS 的 Simba 共享上(否则绕不开 Sync 对文件的权限设定,无法让多人使用)。这种非常规的设置一直用得磕磕绊绊,直到某一天,我意识到 Google Drive 不是为多人多地共享设计的,于是改用 FreeNAS。

其实今天扯远了。今天是讲我发现 Google Drive 可以列出所有的 orphaned files,搜索条件就是“is:unorganized owner:me”。这些孤儿文件就是在别人的共享文件夹创建的,在宿主文件夹被删除以后,其下的文件因属主不同不会被删除,而是成了没有宿主文件夹的孤儿。

这些文件除了在属主的帐户里搜索,没有其他办法被找到。日积月累,孤儿文件越来越多,之前一直缺少一个办法列出所有的孤儿文件,问了 Google 几次无果,搞得我都想自己写一个搜索程序(当然还没动手),今天发现有办法了。

但懂得搜索“is:unorganized owner:me”可算是高级技巧了,我觉得 Google Drive 可以搞一个类似“Shared with me”的“Orphaned”标签,或者允许删除文件夹时一并删除其下有写权限文件,不论属主(这样也是安全的——既然创建者把文件创建在共享文件夹里允许别人修改,就也应该允许别人删除)。

Why DrayTek SmartVPN does not work in Windows 10?

Why DrayTek SmartVPN does not work in Windows 10? Well, it will work, but it does not work out of box. 

After installing SmartVPN in Windows 10, I set SmartVPN client to use remote gateway and DNS, then I can see VPN connection is green (as usual), and I can get public IP of remote gateway. However, the traffic is not fully routed to remote gateway. From the symptom I guess DNS is not routed to remote.

To fix this problem, I have to disable “Automatic metric” for TCP/IPv4 property of VPN connection, and manually set “Interface metric” to a figure that is smaller than the one of Local connection or Wi-Fi connection, whichever I am using to connect to the Internet.

The theory behind is simple – the smaller metric is, the higher priority of the route. By default settings Windows 10 cannot work out a suitable metric for VPN connection, but Windows 7 can. This is another proof of Windows is getting more stupid.

What is the maximum RAM can Lenovo T410 upgrade to?

According Lenovo official website, T410 “supports up to 8GB maximum memory”.

From the forum of Lenovo, someone said

I have exactly the same computer. Here is what I have tried:

– 2x 8GB = didn’t work
– 1x 4GB + 1x 8GB = didn’t work
– 1x 2GB + 1x 8GB = didn’t work
– 1x 8GB = didn’t work
– 2x 4GB = WORKS….

So maximum is 8GB (2x 4GB)

However, they are both incorrect. I just tried 12GB (4GB under the keyboard + 8GB on the underside of the computer). It boots Fedora 22 workstation without any problems. Although it hangs on Windows 7 booting stage, I think it may boot Windows 7 or 8 from new installation. Whatsoever the fact reflects Fedora is more robust than Windows.

I will try if T410 supports 16GB if I can find a way how to install RAM under the keyboard.

UPDATE: I have tried 16GB (8GB under the keyboard + 8GB on the underside of the computer). Fedora boots all right (Windows still hangs). So the final answer to the maximum RAM can Lenovo T410 upgrade to is 16GB! Here is the screenshot as a proof of my experiment.Lenovo T410 with 16GB RAM running Fedora

Install CentOS 7 on Fujitsu Server

我买了一个 Fujitsu TX2540 M1 服务器,可以说是一个错误的选择。因为它的安装逻辑异常复杂,花了好长时间才把 CentOS 7 安装成功。

期间多次以为它不支持 CentOS 7,只有在 Fujitsu Support 网站上找到一份文件说 CentOS 7 is “Tested”,才支撑我频频破碎的信念一直到成功。因为 Fujitsu 注明 CentOS 7 仅是 “Tested”,而非 “Supported”,意味着 Fujitsu 不提供官方支持。期间我尝试着按网上找到的方式,电邮联系 Fujitsu,问能不能告诉我我买的服务器 Megaraid 是什么型号。Fujitsu 回信说它不提供电邮支持(那你公布电邮干吗?)信里说可以使用他们的在线提问系统,于是我重填了一遍问题,然后得到回复说,要我打电话寻求支持。我彻底服了,不过我也没打电话,因为当时我也差不多摸索出来了。

言归正传。CentOS 7 安装时碰到的问题是识别不了 Megaraid,要我禁用阵列卡做单个硬盘使用,我又心有不甘。试了好些其他主流操作系统也是如此。后来我用 ServerView Installation DVD 启动,它是“预安装”盘。预安装界面里是找不到 CentOS 7 的,好在 CentOS 7 和 RedHat Enterprise Linux 7 的极其相似性,我选了RedHat Enterprise Linux 7 让预安装执行完毕,之后选择安装源千万不能选从 DVD 读取。我是指定了 CentOS NetInstall 的 URI 才顺利让机器重启后进入了 CentOS 的安装界面。这时安装目标盘已被预置为阵列卡(这时千万不要点进去,一旦进去后哪怕不做任何修改,返回安装过程又成识别不了阵列卡的状态),之后就是正常的安装步骤了。

最后吐槽一下 ServerView Installation DVD,它的操作系统竟然是 Windows,看得出 Fujitsu 已经落伍了。

Fix WangWang link

在 Windows 下刚装了最新版的淘宝旺旺,但是点击网页上的卖家,总是打开网页版的旺旺。

这真有点滑稽:以前在 Linux 下,没有旺旺可用,可点击网页上的卖家,总是先企图运行旺旺 exe。

言归正传,解决办法是手动注册 AliIMX.dll。

regsvr32 "C:\Program Files (x86)\AliWangWang\8.00.05C\AliIMX.dll"

以后版本不同,AliIMX.dll 位置可能会有变化,该改就改。

Yum clean all cleaned warnings

Warning: group core does not exist.
Warning: group core does not exist.

今天在 Fedora 20 上更新应用,碰到一大堆 warnings:
Warning: group core does not exist.
Warning: group gnome-desktop does not exist.
Warning: group multimedia does not exist.
Warning: group firefox does not exist.
Warning: group guest-desktop-agents does not exist.
Warning: group base-x does not exist.
Warning: group anaconda-tools does not exist.
Warning: group fonts does not exist.
Warning: group hardware-support does not exist.
Warning: group dial-up does not exist.
Warning: group printing does not exist.
Warning: group libreoffice does not exist.
Warning: group input-methods does not exist.
Warning: group standard does not exist.

但用了一个

yum clean all

再作

yum update

就好了。真是太简单了。可能这几天碰到的事情比较烦,遇到简单的反而不适应了。

顺便说一下 Fedora 20 桌面版,没有明显的 bugs,挺稳定的。用了这么多年的 Fedora,感觉终于进入了 Fedora XP 时代。记得以前用 Windows,从 95,98,到 ME,没有一个省心的,总是莫名其妙的问题,经常重装系统。到了 XP,终于稳定了,装一次可以用很久很久(这让 Vista, Windows 7, 和最新的 Windows 8 没有掀起新的高潮)。当然,Fedora 20 出来没几天,我说它稳定,可能为时过早,只是一种直觉,希望 Fedora 20 日后的表现不要辜负我。

Rescue a VBox missing l_intl.nls

有人求助说一台 Windows 虚拟机坏了,启动不了。我去一看,黑屏白字,说,missing C:\Windows\System32\l_intl.nls,要我用 Windows 启动盘里的故障修复台修复。

Missing l_intl.nls
Missing l_intl.nls

怎么修复呢?没有说。我手边一时没有启动盘,自作聪明地把坏掉的虚拟机的硬盘文件 vhd 挂载到另一台虚拟机下做第二硬盘,查看 \Windows\System32\l_intl.nls 还在不在。在另一台虚拟机下看这硬盘挺健康的,\Windows\System32\l_intl.nls 也在。

我仍是复制了一份 l_intl.nls 给它,还是启动不了。

还是 Google 来一个办法,去取来 Windows 启动盘,在故障修复台命令行执行


chkdsk c: /r

30G 的硬盘,花了 1个多小时修理完毕,没提示有什么磁盘错误。重启,非常遗憾,仍是黑屏。

接着又试着把坏掉的虚拟机的硬盘文件 vhd 挂到另一台虚拟机下,直接在它的 Windows DOS 里执行


chkdsk c: /f

这跟故障修复台环境不同,chkdsk 能接受的参数也不同。这次修理快了很多,提示了一堆 Index 错误,看不懂,也不知修复了没有,看重启,仍是黑屏。

之后又尝试种种工具,无一有效。直到看到一个论坛的角落里(因为我花了几小时才看到,所以是角落)有人说,”YET ANOTHER Microsoft screw up”。一语惊醒梦中人!

那人建议试试 BIOS 重置、测试下内存(换下有问题的内存条)。我的是虚拟机,没有 BIOS 重置一说。我就新建了一个虚拟机,加载既有的 vhd,mamma mia,重见 Windows 的徽标在飘扬,舒了口气。

但是,我高兴得太早了,我很快发现此 Windows 非彼 Windows——我忘了这是虚拟机。刚才新建的虚拟机,加载的 vhd 文件,是有问题的虚拟机下的硬盘的最初状态!最初状态非常健康。这也是之前种种努力,把它挂载到其他虚拟机下尝试修复,修复时没发现问题,l_intl.nls 文件也在,而在有问题的虚拟机下真正加载的不单是这个 vhd,而是一个 Current State。修来修去,修的都不是 Current State。

明白这个道理之后,剩下的事情就很简单了。

我赶紧把 Current State 生成一个独立的 vhd 文件。在有问题的虚拟机的目录里,找到 [虚拟机名].vbox 来查看一下,从中找到 Current State 对应的文件名,我的是 {991f2a80-9fbe-48b5-9c02-27f745bdf81c}.vhd。这个 vhd 不是独立的,它是从最初状态,经过一次次 Snapshot (如果有的话),diff 得到的 Current State。

怎么把这些 diff 合并得到一个独立的 vhd 文件?VirtualBox 有个简单的命令:


VBoxManage clonehd \{991f2a80-9fbe-48b5-9c02-27f745bdf81c\}.vhd currentstate.vhd -format VHD

这命令必须在原 host machine 上运行,否则哪里去找 {991f2a80-9fbe-48b5-9c02-27f745bdf81c}.vhd 的 parent,parent 的 parent…

这次做的 currentstate.vhd,再次挂载到其他虚拟机里作第二硬盘,一看,果然,\Windows\System32\l_intl.nls is missing,赶紧,复制一个给它。

然后以 currentstate.vhd 为第一硬盘,加载到坏掉的虚拟机里,终于又见 Windows 的徽标在飘扬——这一次是真的真的真的 Windows!

Solve Google Drive Sync installation 1603 error

我不太用Windows,最近却玩得比较多,没办法呀,谁让 Google Drive Sync for Linux 还没问世。

在安装 Google Drive Sync 时碰到 1603 错误,最后发现要先装 Microsoft Visual C++ 2008 SP1 Redistributable Package。还有人说一定要装 2008 版,我不信邪,先装了个 Microsoft Visual C++ 2010 SP1 Redistributable Package,果然还是出错。再装一个 2008,就 OK 了。

System restore is useless

Windows 里装坏了一个软件,怕卸载不干净,在卸载后运行系统还原,结果说——无法还原!换一个还原点,还是无法还原!

Unable to perform system restore
Unable to perform system restore

以后干脆关闭系统还原,依赖虚拟机的快照功能或许还可靠一些。