在windows10系统中隐藏linux系统所在磁盘
如何在linux当中隐藏windows硬盘分区
直接采用 reg 吧?会简单方便多了。
本文中的解决“乱码”问题
本文的环境:Win 10 21h2
-------------------------------------------------------------
思考:
国外有几个商业公司开发的、免费的开源工具,如:
linux reader https://www.diskinternals.com/linux-reader/
它们只提供了“读”的功能,而没有“写”的功能,这可能是有道理的?
- “读”则简单,出现了乱码问题,是否要读,由用户自己决定。或者软件的作者可以容易解决在读过程中的乱码问题。
- “写”过程的乱码问题,如果软件没有解决好,则会损坏用户的源文件,这是灾难的,同时也会影响到 这种软件的口碑。以其这样,不如只提供“读”的功能。
未来可能会解决跨系统的乱码问题吧?win 12之后?
-------------------------------------------------------------
双系统的问题:格式化、乱码
本文主要考虑的是在编程场景之下,产生源码的乱码问题,以及格式化问题。
如果没有解决“格式化、乱码”问题之前,那么,使用双系统可能会造成人为的数据灾难?
在其他应用场景里,可能不需要对这类问题有太多的关注吧?
1. 严重 1:在 Win OS中,打开 Linux ext4磁盘时,由于 Win无法识别,于是,总是跳出“使用驱动器 X: 中的光盘之前需要将其格式化”,“you need to format the disk in drive before you can use it”。
结果呢?手一哆嗦,按到了“格式化磁盘”的按钮,悲剧了:Linux磁盘数据,完蛋了。
无效的解决方案:
1.1. ext2Fsd 虽然可以读取 ext4文件系统中的文件,但无法避免上述问题。
1.2. wsl2 据说可以 mount,但还不知道行不行?在 win10上 wsl --update了之后,还是没有看见 --mount 选项,可能需要 win 11才行吧?没有继续实验了。
说明;
1. 当未格式化、或 Win无法识别格式的磁盘,在启动之前,就已经有效地连接在电脑上了,此时
不会弹出格式化提示窗口。<< 这是本文所指的双系统场景。
但当点击该盘时,也会跳出格式化提示窗口。
在电脑启动完成之后,再插入磁盘,则会弹出格式化提示窗口。
2. win 自带的其他隐藏磁盘功能的磁盘管理工具,只对 win 能够识别的磁盘,才有效。对 ext4 无效。
2. 严重 2:Windows是卖钱的,每一种语言就有不同的字符编码。在双系统使用时,很容易导致“源文件“产生难以恢复的“乱码”问题。
未来的解决方案
据说 Win 12 之后,就可以直接支持 UTF-8了,也就是在双系统场景没有乱码问题了;但这是未来的东西。
实验方案
1. 实验 OK 的方案
“隐藏用户指定驱动器_首先自定义需要隐藏的驱动器.reg”
“显示全部驱动器_取消所有的隐藏驱动器.reg”
2. 其他方案
暂时没有找到其他的合适方案,也许 win12之后,就不需要考虑这个问题了?
双系统的文件共享问题
虽然有不少的小工具,提供了在双系统场景之下的文件共享方案。
但我觉得直接采用一个小容量的、可靠的 linux发行版,在虚拟机中采用共享文件夹的方式,来实现双系统场景下的文件共享,也是可靠的。
之所以要读取 Linux文件,或多或少都会使用到 Linux OS;现代电脑的 RAM,磁盘等等,在不太需要考虑速度的文件共享场景里,增加一个虚拟机还不应该成为其负担吧?
===================================
在 windows10系统中隐藏 linux系统所在磁盘 (*已验证*)
Step 2双系统:windows10(磁盘C)+scientific linux7.9(磁盘D、E)
关键:在Administrator账户中修改注册表。<< 好像使用其他具有管理员权限的账户,都可以的吧?
1-Step 1
打开计算机管理。在任务栏搜索框中输入"compmgmt.msc",回车。
1-Step 2
取消Administrator账户的"账户已禁用"
1-Step 3
进入管理员账户
2-Step 1:
打开注册表编辑器。(键盘点击win+R,输入 regedit )
2-Step 2:
进入以下路径
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
新建"DWORD(32位)值",命名为"NoDrives",显示类型为"REG_DWORD"。
2-Step3:
换算
注册表中,键的类型REG_DWORD,表示32位无符号数,如果用二进制表示,从低位到高位(也就是从右到左),依次表示ABCDEFGHJIKLMNOPQRSTUVWXYZ,如果想隐藏哪个驱动器,直接把对应位写成1,不隐藏就写0。
例如,对于此例,若想隐藏磁盘D和E,而其他其他磁盘不隐藏。二进制数应为"00000000000000000000011000",转换为16进制数为"18"。所以,修改"NoDrives"的数值数据为十六进制的"18"。
发布于 2022-04-15 21:30
例子
(11000)b = (16 + 8 =24)十 = (18)十六
盘符 | 二进制 | 十六进制 | 十进制 |
---|---|---|---|
C | 100 | 4 | 4 |
D | 1 000 | 8 | 8 |
E | 10 000 | 10 | 16 |
F | 100 000 | 20 | 32 |
G | 1 000 000 | 40 | 64 |
盘符 | 二进制 | 十六进制 | 十进制 |
---|---|---|---|
C + D | 1 100 | C | 12 |
E + F | 110 000 | 30 | 48 |
E + F + G | 1 110 000 | 70 | 112 |
直接采用 reg 吧?会简单方便多了。
隐藏用户指定驱动器_首先自定义需要隐藏的驱动器.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDrives"=dword:00000018
显示全部驱动器_取消所有的隐藏驱动器.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDrives"=dword:00000000
说明:
1. 必须首先修改成自己需要的 16 进制值。
"NoDrives"=dword:00000018,“00000018” 为十六进制值。
这个十六进制值的表示意义,见上文。
2. x.reg 文件,只能在本机中运行,在网络磁盘上运行无效?
3. “隐藏用户指定驱动器_首先自定义需要隐藏的驱动器.reg” 运行成功后, Win OS 需要重启之后,才有效。
4. “显示全部驱动器_取消所有的隐藏驱动器.reg”
十六进制值为全 0,无需修改,直接运行即可。
如何在linux当中隐藏windows硬盘分区
https://zhidao.baidu.com/question/424226110328778972.html
若/dev/sda3上装的是Windows。在linux下是没有挂载sda3的,但这个分区会显示在文件管理器里。不想它显示,可以这么做,
fdisk /dev/sda
输入 t 更改sda3的分区类型
若之前是NTFS,改为Hidden NTFS类型即可
本文中的解决“乱码”问题
1. 对双系统之下的源码文件进行隔离,有 Linux 创建的文件,只会由 Linux来读写;反之一样。
2. 当需要进行“写操作”时,必须保证原始文件,只能由创建它的系统进行写操作。
这样万一出现了乱码,还可以通过读取原始文件来处理。
3. 当需要进行跨系统的“写操作”时,必须能够即时验证是否存在乱码问题。
虽然现代大多的文本编辑器都可以支持各种各样的字符编码格式,但是,万一无意中选择的编码格式,从而造成了难以恢复的乱码呢?
在单一系统(OS)中工作,可能根本就不需要去考虑“乱码”的问题。但是,在跨平台工作时,乱码问题可能就是一个习以为常的麻烦事了?