为了学习linux,我装了双系统,给了ubuntu 30G空间,为什么我一看是loop而不是sda?

兄弟,你这是踩到了虚拟化的坑!

看到这个问题瞬间破防了,想起当年我在某马刚入职时也被这种问题搞得一脸懵逼。

先说结论:你装的不是真正的双系统

你以为自己装了双系统,实际上很可能装的是虚拟机或者WSL(Windows Subsystem for Linux)。

loop设备就是这么来的。

什么是loop设备?简单粗暴地解释

loop设备本质上就是把一个文件当硬盘用。

你那30G空间其实是Windows下的一个大文件,Ubuntu把它当成硬盘来读写。

真正的双系统应该看到的是:

  • sda1、sda2这种物理分区
  • 或者nvme0n1p1这种NVMe固态硬盘分区

而你看到的loop,说明系统在”演戏”。

为什么会出现这种情况?

情况一:你装的是WSL

如果你在Windows应用商店下载的Ubuntu,那恭喜你中奖了。

WSL本质上就是在Windows内核上跑Linux用户态,所有的存储都是通过loop设备映射的。

情况二:你用了虚拟机

VMware、VirtualBox这些虚拟机软件,给虚拟系统分配的硬盘空间就是宿主机上的一个文件。

在虚拟机里看到loop设备再正常不过。

情况三:你装了”假”双系统

有些一键安装工具为了简化操作,会在Windows分区里创建一个大文件来模拟Linux分区。

这种方案性能拉胯,还容易出问题。

如何验证你的情况?

打开终端,敲几个命令:

lsblk
df -h
cat /proc/mounts

如果全是loop设备,基本确定你没装成真双系统。

真双系统应该怎么搞?

作为一个从单片机摸爬滚打到Linux应用开发的老司机,我建议:

方案一:U盘启动安装

  • 下载Ubuntu ISO镜像
  • 制作启动U盘(推荐Rufus)
  • 重启进BIOS,从U盘启动
  • 手动分区安装

方案二:硬盘分区安装

  • Windows磁盘管理压缩卷
  • 预留未分配空间
  • U盘启动安装到未分配空间

踩坑经验分享

当年我在世界500强外企做汽车电子时,经常需要在不同环境间切换。

虚拟机性能不够,WSL功能受限,最后还是老老实实装了真双系统。

虽然折腾了一晚上,但后来的开发效率提升了不止一个档次。

特别是做嵌入式Linux开发,真实的硬件环境和文件系统结构对理解系统架构帮助巨大。

最后的建议

如果你只是想体验Linux,WSL够用了。

但如果真想深入学习,建议装真双系统或者买个便宜的二手笔记本专门跑Linux。

毕竟我们做技术的,工具链的选择直接影响学习效果。

就像当年我从机械转嵌入式一样,环境搭对了,后面的路就好走多了。

现在我的公司给新人培训Linux时,第一课就是教大家区分这些概念。基础不牢,地动山摇啊!

兄弟,你这是踩到了虚拟化的坑!

看到这个问题瞬间破防了,想起当年我在某马刚入职时也被这种问题搞得一脸懵逼。

先说结论:你装的不是真正的双系统

你以为自己装了双系统,实际上很可能装的是虚拟机或者WSL

loop设备就是这么来的。

什么是loop设备?简单粗暴地解释

loop设备本质上就是把一个文件当硬盘用。

你那30G空间其实是Windows下的一个大文件,Ubuntu把它当成硬盘来读写。

真正的双系统应该看到的是:

  • sda1、sda2这种物理分区
  • 或者nvme0n1p1这种NVMe固态硬盘分区

而你看到的loop,说明系统在”演戏”。

更多编程学习资源


嵌入式学习路线完整攻略

作为一个从机械转行到嵌入式,在这个领域摸爬滚打了快10年的老司机,今天给大家分享一套完整的嵌入式学习路线。

这套路线是我结合自己的实战经验,以及带过的几十个学员的反馈总结出来的。

1. 学习大纲

详细学习大纲展开:

基础阶段重点:这个阶段最容易劝退新人,但也是最关键的。

C语言不是简单会写hello world就行,你得深入理解指针的本质,知道内存是怎么分配的,为什么嵌入式里要用volatile关键字。

数字电路基础决定了你能不能看懂硬件原理图,这直接影响后面的调试能力。

进阶阶段核心:ARM架构是现在嵌入式的主流,特别是Cortex-M系列在工业控制和物联网领域应用广泛。

RTOS的学习不能只停留在API调用层面,要理解任务切换的底层机制,这样遇到死锁、优先级反转等问题时才能快速定位。

高级阶段突破:Linux系统编程是很多人的分水岭,从裸机开发转到Linux开发,思维模式要完全转变。

驱动开发更是嵌入式工程师的核心竞争力,会写驱动的工程师在市场上非常抢手。

2. 必看开源视频

B站精品课程推荐:

C语言与数据结构

  • 《郝斌C语言自学教程》- BV1os411h77o 这套课程讲得非常细致,特别适合零基础入门,郝老师的讲解风格很接地气

单片机入门

  • 《江科大自化协单片机教程》- BV1Mb411e7re
    江科大的这套教程在B站火了好几年,从51单片机讲到STM32,循序渐进

STM32开发

  • 《正点原子STM32教程》- BV1th411z7sn 正点原子的教程配套资料很全,从寄存器到HAL库都有涉及

嵌入式Linux

  • 《韦东山嵌入式Linux教程》- BV1kJ411H7bI 韦东山老师在嵌入式Linux领域是权威,这套课程从裸机到Linux应用都有

RTOS系统

  • 《FreeRTOS教程》- BV1qJ411W7ck 系统性讲解FreeRTOS的原理和应用,适合有一定基础的同学

其他平台优质资源:

慕课网:《嵌入式工程师养成计划》 腾讯课堂:《从零开始学ARM》 网易云课堂:《嵌入式Linux系统开发》

3. 必读经典书籍

入门必读

《C Primer Plus》 - 学C语言的圣经,虽然厚但讲得很透彻 《C和指针》 - 专门讲指针的书,嵌入式开发指针用得特别多

进阶提升

《ARM嵌入式系统开发》 - 周立功编写,国内ARM开发的经典教材 《嵌入式实时操作系统μC/OS-II》 - 虽然现在用FreeRTOS多,但理解RTOS原理的好书 《深入理解计算机系统》 - 程序员必读,理解底层原理

高级深入

《Linux设备驱动程序》 - 驱动开发的权威指南,俗称LDD3 《深入Linux内核架构》 - 想深入理解Linux内核必读 《嵌入式Linux应用开发完全手册》 - 韦东山老师的书,很实用

专业方向

《汽车电子嵌入式系统设计》 - 汽车电子方向 《物联网嵌入式开发实战》 - 物联网方向
《工业控制系统信息安全》 - 工业控制方向

4. 必做项目

入门级项目

LED点阵显示屏

智能温控风扇

简易示波器

进阶级项目

基于FreeRTOS的多任务系统

CAN总线通信系统

简易TCP/IP协议栈

高级项目

嵌入式Linux驱动开发

物联网网关系统

汽车电子ECU仿真器

综合项目

智能家居控制系统

工业4.0数据采集系统

5. 必刷经典面试题

C语言基础

  • 指针和数组的区别是什么?
  • volatile关键字的作用?
  • 结构体内存对齐的原理?
  • 函数指针的应用场景?
  • 内存泄漏如何检测和避免?

单片机原理

  • 中断和轮询的区别?各自适用场景?
  • 看门狗的作用和实现原理?
  • SPI和I2C协议的区别?
  • PWM的工作原理?如何实现调速?
  • ADC的精度和分辨率区别?

RTOS系统

  • 任务调度算法有哪些?
  • 信号量和互斥量的区别?
  • 优先级反转问题如何解决?
  • 内存管理策略有哪些?
  • 如何避免任务间的死锁?

嵌入式Linux

  • 用户态和内核态的区别?
  • 设备树的作用是什么?
  • 字符设备和块设备的区别?
  • 内核模块的加载过程?
  • 中断的上半部和下半部?

硬件相关

  • 上拉电阻的作用?
  • 晶振电路的工作原理?
  • 电源管理的考虑因素?
  • EMC设计的基本原则?
  • PCB布线的注意事项?

通信协议

  • TCP和UDP的区别?
  • CAN总线的仲裁机制?
  • 以太网的冲突检测?
  • USB的枚举过程?
  • 蓝牙的配对流程?

项目经验

  • 如何进行系统调试?
  • 性能优化的方法?
  • 代码移植的注意事项?
  • 产品化需要考虑哪些因素?
  • 如何保证系统的可靠性?

这套学习路线是我这些年实战总结出来的,从某马的单片机开发到外企的汽车电子,再到现在自己创业做嵌入式培训,每个阶段都有不同的感悟。

记住,嵌入式不是纸上谈兵,一定要多动手实践,多看开源代码,多做项目。

最重要的是,不要被技术的广度吓到,先选一个方向深入,再横向扩展。

我当年从机械转嵌入式时也很迷茫,但坚持下来就会发现,这个领域的魅力在于它连接了软件和硬件,让你的代码能够控制真实的物理世界。

更多编程学习资源

编辑于 2026-02-06 · 著作权归作者所有