用移动硬盘当系统盘,即插即用

本文详细介绍了如何使用固态移动硬盘创建一个可随身携带的工作系统,包括其优点(如便于在不同设备间切换工作环境)和缺点(如接口松动可能导致数据丢失)。作者分享了安装过程中的注意事项,如选择合适的硬盘、硬盘盒和系统安装工具WinToGo,并提供了解决安装问题的技巧。此外,还强调了设置和管理移动硬盘系统时应注意的细节,如移除PIN、调整盘符和设置虚拟内存等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

        之前用了个120g的固态移动硬盘来当系统盘。写代码的软件,以及一些数据库,常规软件都装在上面,天天只用带着这个硬盘上下班,然后插到任意台电脑上就可以进入自己的工作环境。用了几个月了,但是硬盘大小不够,得换个大一点的硬盘,就写个博客来记录整个过程和分享这样做需要注意的地方

         先说说这样做的优点

        1、 不用背着沉重的电脑上下班,家里一台,公司一台。需要用的时候插上硬盘,就可以恢复工作环境,只用把软件和数据都装在硬盘里(特别大数据就可以放在别的硬盘里,但是软件建议要装在移动硬盘中,这样注册表的信息不用修改,插上任意一台电脑都可以运行软件)就可以轻松的在两台电脑上办公。

        2、哪天电脑突然故障了打不开了,但是工作上有个紧急事件要处理,你不处理就要被辞退了。这时候你把移动硬盘往同事电脑上一插,电脑再抢过来,你马上就可以进行你的工作了,辞退的就是你的同事。

        再说说缺点

        1、要是你的usb接口或者type-c接口比较松的话,轻轻碰一下就会断开连接的话,那就不能这样做。因为你的系统在移动硬盘上,你接口松了,断开了连接,这时候电脑就会直接卡死,重新插紧移动硬盘也是徒劳的,只能强制关机。一方面会对硬盘有一定损坏,另一方面会造成数据的丢失。我就刚开始的时候不小心弄松了一次,除了死机,需要强制关机,硬盘没有坏,恰好那时候也没有写入什么重要的数据。

        2、和1差不多,就是关机的时候,不要着急拔移动硬盘,可能你把笔记本一合上,系统还没关机,你把硬盘拔了,电脑又直接死机卡住。要确保好关机了,再拔移动硬盘 。有两次我都是急着拔移动硬盘,然后电脑放背包里。最后回家拿出来,电脑温度已经达到烫手的地步。幸好没有坏掉。但是这个务必要牢记,一定关完机了再拔移动硬盘。

        3、不要设置pin,指纹,人脸识别。这个后面会讲,简单一句话就是,设置了pin,当把移动硬盘插在其他电脑上的时候,会让你重新设置pin,然后一直卡在重新设置pin的界面。直接设置密码就可以。后面再细说。

2、安装过程

        2.1. 需要的东西

                WinToGo、如果想换系统就得下个系统镜像、一块硬盘+硬盘盒。

                1、WINTOGO是微软上推出的一个把系统装进U盘的服务,使得我们的系统可以随身携带,非常方便。我放到我的阿里云盘里了,下载的快点。没有打广告。

                「WinToGo1.0.0.0.exe」https://www.aliyundrive.com/s/osQ73E78JBK 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

                2、系统镜像,去MSDN, 我告诉你 - 做一个安静的工具站 (itellyou.cn)。里面下载你需要的镜像。或则用WinToGo里面可以用当前系统来当镜像。BT链接可以用迅雷下载。

                3、硬盘,这次我用的500g的固态硬盘,500g对我而言完全足够,不需要的数据库就备份到网盘中,定期清理qq、微信数据。稍微讲一下怎么买合适的固态硬盘。要了解硬盘的速率,接口的速率,硬盘盒的速率。

                现在固态硬盘是越来越便宜了。能上固态就上固态,机械硬盘太慢了,60MB/s~80MB/s。简单讲一下常见的几种固态硬盘,信息都是网上搜的,并没有做深入了解。

                一种是sata接口的固态硬盘

                sata接口也分sata1,sata2,sata3,理论速率分别是150MB/s, 300MB/s,600MB/s。实际速率会小一点。淘宝京东上普遍都是sata3。

                还有m2接口的固态硬盘

                    m2接口有两种协议,一种sata协议, 一种NVME协议。sata协议的和上面说的差别不大,但是NVME协议的m2接口速度可以达到,2400MB/s,也是理论上,反正快很多。价格微微贵一点。

                硬盘盒因此也分为俩种,一种装sata接口的固态硬盘,一种装m2接口的固态硬盘。

                

                 这个就得看一下是否和自己硬盘速度匹配,越接近当然越好。

                还得看一下你到时候是插在usb3.0的接口还是usb2.0的接口,还是type-c的雷电接口。usb3.0接口每秒500MB的传输速度。usb2.0接口每秒480MB传输速度。而type-c的雷电接口速度能达到上千MB每秒的传输速率,雷电接口也分很多种,速率也各不相同。

                介绍这么多,我也就是想说找到合适速率的硬盘和硬盘盒来匹配自己的电脑接口是最需要看的,而且具有短板效应,速度取最小的那个。而硬盘大小就看自己的需求。我买的是sata3接口的硬盘和其对应的硬盘盒,插在usb3.0接口上。最后速率大概是400MB/s。我这么选择的原因是便宜。硬盘只要300多,硬盘盒20多。如果整个m2接口NAME协议的固态硬盘,买一个能尽可能展现它性能的硬盘盒得上千元。而且m2接口的这个固态硬盘发热严重,散热也得想想怎么解决最好。总之我买的这套从速度角度已经是完全足够我作为一个程序员日常办公的需求了。

                另外,要是电脑的USB3.0接口不太够用,可以考虑用拓展坞,或者电脑上有type-c接口,买个盒子带type-c接口的盒子,或者买个type-c转usb接口的转换器。总之考虑好速度和价格之间的平衡。

        2.2 用WinToGo把系统安装到移动硬盘中去

                安装WinToGo到一个记得卸载的地方后,以装win10为例子。

                

                 根据自己的需要选择

                 选择需要安装的移动硬盘后,点击高级设置

                 这个看你的电脑支不支持UEFI启动了,不了解可以先搜索了解一下,我也说不明白。不敢乱说。

                 点击开始制作,移动硬盘中有需要的文件记得备份,因为移动硬盘会被格式化。

        2.3制作过程中可能出现的问题

               出现这个问题是因为磁盘的格式有问题,先还原到之前的模样

                此时磁盘的结构变成这样了

                 先删除图片中的d盘,对着d盘点击右键选择删除卷。

                 然后右键点击新建卷,然后一路确定就行。

 

                 下载一个deskgenius数据恢复软件,硬盘分区工具,系统备份软件 - DiskGenius官方网站,也是下载解压到一个到时候记得卸载的地方。在文件夹中找到 并双击启动。

                 对下面图片中的移动硬盘点击右键,选择转换为MBR格式

                然后要记得保存分区表。

                 然后再去WinToGo里试试把,记得修改高级设置里的东西,这个设置会被重置。这样做的原因我已经忘记了,反正当时是尝试了多种方法来解决,刚好现在记得这种方法。

                如果还是不行,或者有别的问题,看看这个论坛,可能对你有帮助

Windows TO GO常见问题解决办法 - Windows To Go优盘系统 - 萝卜头IT论坛 - Powered by Discuz! (luobotou.org)

        2.4 到bios里切换到移动硬盘作为首选启动项

               

                 然后巴拉巴拉的填写必要信息,就可以进入系统了

        2.5 后续需要注意的东西

                1、一定要把pin去掉,就像我开头说的,他会导致移动硬盘插到别的电脑上时,一直卡在修改pin的界面,而且别的电脑也不一定有指纹识别功能和摄像头人脸识别。万一没有该登录方法也没有办法切换密码登录了。所以就只设置密码登录就行。

                这几个最好都取消勾选和删除,然后重进这个界面

                 只设置 密码

                2、 盘符尽量设置很后面的字母

                目的是以免在把移动硬盘插到另一台电脑上时,这个盘符已经被占用了 ,导致文件路径不对。设置靠后一点的字母,插到另一台电脑上时,改变一下盘符就可以了。

                3、设置虚拟内存

                这个问题当时导致电脑莫名其妙的就连不上网,什么应用都无法打开,任务管理器中查看cpu、内存、硬盘、网络都没有超标。当时差点放弃用移动硬盘当系统盘这个想法,幸好看了一眼系统日志找到了原因,没有设置虚拟内存。如果已经设置好了,就不需要改了。

        

 

                勾选自动管理所有驱动器的分布文件大小。当然你也可以自己设置,网上建议说是虚拟内存的大小建议是实际内存大小的1.5~2倍。

 

                 然后重启看看是否有值。

3、 后话

        如果这个移动硬盘第一次插到别的电脑上时,屏幕会显示正在准备***,别慌张,不是回到了装系统的时候。而且刚装好的时候,可能屏幕会闪,因为这是在装驱动,最好是再重启一下电脑。

        实测,不能通过此方法安装win11,但可以通过别的方法安装,也简单,别人已经出教程了,我就不重复写了。

<think>好的,我现在需要回答用户关于如何在C++中编写switch-case函数的问题,并且要给出示例。首先,我得确保自己正确理解用户的需求。用户可能已经了解基本的编程概念,但需要具体的语法指导和示例。 首先,我应该回忆C++中switch语句的基本结构。switch语句根据一个表达式的值,将控制转移到不同的case标签处。每个case对应一个常量表达式,当switch的表达式与之匹配时,执行相应的代码块。记得每个case后面通常要加上break语句,以防止执行流进入下一个case。此外,default分支是可选的,用于处理未匹配任何case的情况。 接下来,我需要考虑如何构造一个函数,里面包含switch-case结构。例如,函数可能接受一个整型参数,根据不同的参数值执行不同的操作。比如,处理不同操作码或菜单选项的函数。 然后,我需要确定示例的具体内容。可能用一个简单的例子,比如根据用户输入的数字返回对应的星期几名称。或者更实用一点的例子,比如计算器中的运算符处理。但用户提到的是“switch-case函数”,可能更希望看到一个完整的函数示例,而不是孤立的switch语句。 另外,要确保示例代码符合C++的语法规范。比如,case标签必须是整型常量表达式,变量不能作为case的值。同时,作用域的问题,如果在case内部声明变量,可能需要使用块({})来限定作用域,避免跨case跳转导致的初始化问题。 还需要注意,用户可能对break的作用不太清楚,所以在解释时要强调它的重要性,避免出现多个case连续执行的情况。同时,default分支的处理也很重要,用于处理意外输入。 现在,我需要组织语言,分步骤解释如何编写这样的函数。首先介绍switch语句的语法,然后给出一个具体的例子,比如一个处理菜单选择的函数,根据输入执行不同的操作。代码示例需要完整,包括函数定义、switch结构、各个case和break,以及default处理。 在示例之后,可能需要解释代码的执行流程,说明每个部分的作用。例如,当用户输入1时,执行某个操作,输入2时另一个操作,等等。这有助于用户理解switch-case的实际应用。 此外,用户可能希望了解常见错误,比如忘记写break导致的问题,或者在case中声明变量时的注意事项。这些点也应该在回答中提到,以帮助用户避免常见陷阱。 最后,生成相关问题,可能需要考虑用户进一步的需求,比如性能优化、与if-else的比较,或者在类中使用switch-case的情况。这些问题可以引导用户深入学习和解决更多相关问题。 总结一下,回答的结构应该是: 1. 简要介绍switch-case的作用和适用场景。 2. 展示基本的语法结构。 3. 提供一个或多个示例函数,并解释其逻辑。 4. 强调注意事项和常见错误。 5. 生成相关问题,如优化、比较、应用场景等。 现在需要将这些思路整理成清晰的中文回答,确保代码正确,语法正确,并且符合用户的要求。</think>以下是关于如何在C++中编写`switch-case`函数的详细说明及示例: --- ### 一、`switch-case`函数基本语法 `switch-case`用于根据变量值执行不同的代码块,适合处理**离散值匹配**的场景(如菜单选择、状态码处理)。其语法如下: ```cpp switch (表达式) { case 常量1: // 代码块1 break; case 常量2: // 代码块2 break; default: // 默认代码块 } ``` --- ### 二、示例:根据数字输出星期名称 ```cpp #include <iostream> using namespace std; void printWeekday(int day) { switch (day) { case 1: cout << "星期一" << endl; break; case 2: cout << "星期二" << endl; break; case 3: cout << "星期三" << endl; break; case 4: cout << "星期四" << endl; break; case 5: cout << "星期五" << endl; break; default: cout << "输入错误:请输入1-5" << endl; } } int main() { printWeekday(3); // 输出:星期三 printWeekday(6); // 输出:输入错误 return 0; } ``` --- ### 三、关键注意事项 1. **表达式类型限制** `switch`的表达式必须是整型(如`int`、`char`)或枚举类型,不支持字符串或浮点数。 2. **break的重要性** 若省略`break`,程序会继续执行后续`case`的代码(称为“穿透”)。例如: ```cpp case 1: cout << "A"; // 无break case 2: cout << "B"; ``` 输入1时,输出`AB`。 3. **变量作用域** 若在`case`内部定义变量,需用`{}`限定作用域: ```cpp case 1: { int x = 10; // 仅在此case内有效 cout << x; break; } ``` --- ### 四、与`if-else`的对比 | 特性 | `switch-case` | `if-else` | |--------------------|-----------------------------|-----------------------------| | 适用场景 | 离散值匹配 | 范围判断、复杂条件 | | 可读性 | 多分支时更清晰 | 嵌套过多时较差 | | 性能 | 通常通过跳转表优化[^1] | 逐条件判断 | ---
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值