如何通过 PXE 使用 UEFI 启动 Tiny Core Linux

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:如何通过 PXE 使用 UEFI 启动 Tiny Core Linux

文章目录

    • 一、引言
    • 二、什么是 PXE 和 UEFI?
      • 1、什么是 PXE?
      • 2、什么是 UEFI?
      • 3、UEFI 与 PXE 的结合
    • 三、准备工作
      • 1. 环境要求
      • 2. 安装必要的软件
    • 四、具体步骤
      • 1. 配置 DHCP 服务器
      • 2. 准备 TFTP 服务器
      • 3. 准备 Tiny Core Linux 文件
      • 4. 启动服务
      • 5. 配置客户端计算机
      • 6. 启动计算机
    • 五、注意事项
      • 1. 网络连接
      • 2. DHCP 配置
      • 3. TFTP 配置
      • 4. UEFI 设置
      • 5. 日志和故障排除
      • 6. 客户端计算机配置
      • 7. 安全性考虑
    • 六、总结

在这里插入图片描述

一、引言

  在当今快速发展的技术环境中,网络启动(PXE)已成为系统管理员和开发者们不可或缺的工具。它不仅简化了操作系统的部署过程,还为无盘工作站和大规模计算环境提供了灵活性和高效性。与此同时,UEFI(统一可扩展固件接口)作为现代计算机的标准固件接口,提供了更快的启动时间和更强的硬件支持,使得网络启动变得更加高效和可靠。

  Tiny Core Linux 是一款轻量级的 Linux 发行版,以其小巧的体积和高效的性能而受到广泛欢迎。将 Tiny Core Linux 与 PXE 和 UEFI 结合使用,可以实现快速、灵活的系统启动和管理,尤其适合需要快速部署和测试的场景。

  本文将详细介绍如何通过 PXE 使用 UEFI 启动 Tiny Core Linux,提供一个清晰的操作指南,帮助你在支持 UEFI 的计算机上实现这一目标。无论你是系统管理员、开发者,还是对 Linux 系统感兴趣的爱好者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索这一强大技术的应用吧!

二、什么是 PXE 和 UEFI?

1、什么是 PXE?

  PXE(Preboot Execution Environment)是一种网络启动协议,允许计算机在没有本地存储设备(如硬盘或固态硬盘)的情况下,通过网络加载和执行操作系统。PXE 的主要功能是使计算机能够从网络服务器获取启动文件,从而启动操作系统。这种技术在无盘工作站、服务器管理和大规模部署环境中非常有用。

PXE 启动过程通常包括以下几个步骤:

  1. DHCP 发现:当计算机启动时,它会发送一个 DHCP(动态主机配置协议)请求,寻找网络上的 DHCP 服务器。这个请求包含了计算机的 MAC 地址。

  2. DHCP 响应:DHCP 服务器接收到请求后,会返回一个包含 IP 地址、网关、子网掩码以及 PXE 启动文件位置的响应。

  3. TFTP 请求:计算机根据 DHCP 响应中的信息,通过 TFTP(简单文件传输协议)请求启动文件。TFTP 是一种用于在网络上简单传输文件的协议。

  4. 加载启动文件:计算机从 TFTP 服务器下载启动文件(如内核和初始 RAM 磁盘),并开始执行这些文件,从而启动操作系统。

PXE 的优点包括:

  • 集中管理:可以在网络上集中管理和部署操作系统。
  • 灵活性:支持多种操作系统和配置,适合不同的环境需求。
  • 节省成本:减少了对本地存储设备的依赖,降低了硬件成本。

2、什么是 UEFI?

  UEFI(Unified Extensible Firmware Interface)是一种现代计算机固件接口,旨在取代传统的 BIOS(基本输入输出系统)。UEFI 提供了更强大的功能和灵活性,支持更大的硬盘、快速启动和更复杂的系统配置。

UEFI 的主要特点:

  1. 图形用户界面:与传统的 BIOS 界面相比,UEFI 提供了更友好的图形用户界面,使得用户更容易进行设置和配置。

  2. 支持大容量硬盘:UEFI 可以支持超过 2TB 的硬盘,而传统 BIOS 由于使用 MBR(主引导记录)分区表,限制了硬盘的大小。

  3. 安全启动:UEFI 提供了安全启动功能,可以防止未授权的操作系统和恶意软件在启动过程中加载,从而增强系统的安全性。

  4. 更快的启动时间:UEFI 的启动过程比传统 BIOS 更加高效,能够显著缩短计算机的启动时间。

  5. 模块化设计:UEFI 采用模块化设计,允许开发者添加自定义驱动程序和应用程序,增强了系统的可扩展性。

3、UEFI 与 PXE 的结合

  UEFI 与 PXE 的结合使得网络启动变得更加高效和安全。在 UEFI 环境下,PXE 启动可以使用更先进的协议和文件格式,例如使用 EFI 可执行文件(.efi)格式。这种结合不仅提高了启动速度,还增强了系统的安全性和灵活性。

  PXE 和 UEFI 是现代计算机系统中不可或缺的技术。PXE 提供了灵活的网络启动能力,而 UEFI 则为系统提供了更强大的固件支持和安全性。两者的结合使得操作系统的部署和管理变得更加高效,适应了当今快速发展的技术需求。无论是在企业环境还是个人使用中,理解和掌握 PXE 和 UEFI 的工作原理,对于提升系统管理能力和优化资源配置都具有重要意义。

三、准备工作

  在通过 PXE 使用 UEFI 启动 Tiny Core Linux 之前,需要进行一些准备工作,以确保环境的正确配置和所需软件的安装。以下是详细的阐述。

1. 环境要求

在开始之前,确保你的环境满足以下要求:

  • 支持 UEFI 的计算机

    • 确保你要启动的计算机支持 UEFI 启动。大多数现代计算机都支持 UEFI,但一些较旧的计算机可能仍然使用传统的 BIOS。你可以在计算机的 BIOS 设置中查看是否有 UEFI 选项。
    • 进入 BIOS 设置的方法通常是在启动时按下特定的键(如 F2、Delete 或 Esc),具体取决于计算机制造商。
  • PXE 服务器

    • 你需要一台可以作为 PXE 服务器的计算机。这台计算机将负责提供 DHCP 和 TFTP 服务,以便客户端计算机能够通过网络启动。
    • PXE 服务器可以是运行 Linux 的物理机或虚拟机。确保它与客户端计算机在同一网络中,以便能够相互通信。
  • Tiny Core Linux 的 ISO 文件

    • 下载 Tiny Core Linux 的最新版本。Tiny Core Linux 是一款轻量级的 Linux 发行版,适合用于网络启动。你可以从 Tiny Core Linux 的官方网站下载 ISO 文件。
    • 确保下载的版本支持 UEFI 启动,通常在下载页面上会有相关说明。
  • 网络连接

    • 确保 PXE 服务器和客户端计算机之间的网络连接正常。可以使用有线连接以确保稳定性,避免无线网络可能带来的不稳定性。

2. 安装必要的软件

在 PXE 服务器上,需要安装一些软件来提供 DHCP 和 TFTP 服务。以下是详细的安装步骤:

  • 选择操作系统

    • 你可以选择使用基于 Debian 的系统(如 Ubuntu)或基于 Red Hat 的系统(如 CentOS)。本文以 Ubuntu 为例进行说明,但其他 Linux 发行版的步骤类似。
  • 更新软件包列表

    • 在安装任何软件之前,首先更新系统的软件包列表,以确保你获取到最新的软件版本。可以使用以下命令:

      sudo apt-get update
      
  • 安装 dnsmasq

    • dnsmasq 是一个轻量级的 DHCP 和 TFTP 服务器,适合用于 PXE 启动。可以通过以下命令安装:

      sudo apt-get install dnsmasq
      
    • 安装完成后,dnsmasq 将会自动启动并在后台运行。你可以使用以下命令检查其状态:

      sudo systemctl status dnsmasq
      
  • 安装其他必要工具(可选)

    • 根据需要,你可能还需要安装一些其他工具,例如 tftp-hpa(用于 TFTP 服务)或 nfs-kernel-server(用于 NFS 服务,如果你打算使用 NFS 进行文件共享)。可以使用以下命令安装:

      sudo apt-get install tftp-hpa
      
  • 配置网络服务

    • 安装完成后,确保 dnsmasq 的配置文件 /etc/dnsmasq.conf 正确设置,以便提供 DHCP 和 TFTP 服务。后续步骤中将详细介绍如何配置该文件。

四、具体步骤

  在完成准备工作后,接下来是通过 PXE 使用 UEFI 启动 Tiny Core Linux 的具体步骤。以下是详细的阐述:

1. 配置 DHCP 服务器

DHCP 服务器负责为网络中的客户端分配 IP 地址,并提供启动文件的位置信息。以下是配置 dnsmasq 作为 DHCP 服务器的步骤:

  • 编辑配置文件
    打开 dnsmasq 的配置文件 /etc/dnsmasq.conf,使用文本编辑器(如 nanovim)进行编辑:

    sudo nano /etc/dnsmasq.conf
    
  • 添加 DHCP 配置
    在文件中添加以下内容:

    interface=eth0  # 替换为你的网络接口名称
    dhcp-range=192.168.1.100,192.168.1.200,12h  # DHCP 范围
    dhcp-boot=bootx64.efi  # UEFI 启动文件
    enable-tftp  # 启用 TFTP
    tftp-root=/var/lib/tftpboot  # TFTP 根目录
    
    • interface:指定要监听的网络接口。
    • dhcp-range:定义可分配的 IP 地址范围和租约时间。
    • dhcp-boot:指定 UEFI 启动文件的名称。
    • enable-tftp:启用 TFTP 服务。
    • tftp-root:指定 TFTP 根目录。
  • 保存并退出
    保存文件并退出编辑器。

2. 准备 TFTP 服务器

TFTP 服务器负责提供启动文件给客户端。以下是准备 TFTP 服务器的步骤:

  • 创建 TFTP 根目录
    如果尚未创建 TFTP 根目录,可以使用以下命令:

    sudo mkdir -p /var/lib/tftpboot
    
  • 设置权限
    确保 TFTP 根目录的权限正确,以便 dnsmasq 可以访问:

    sudo chmod -R 777 /var/lib/tftpboot
    
  • 复制启动文件
    从 Tiny Core Linux ISO 中提取 UEFI 启动文件(通常是 bootx64.efi),并将其复制到 TFTP 根目录:

    sudo cp /path/to/tinycore.iso/EFI/BOOT/bootx64.efi /var/lib/tftpboot/
    

3. 准备 Tiny Core Linux 文件

为了让 Tiny Core Linux 能够通过网络启动,你需要将其文件放在 TFTP 服务器上。以下是准备 Tiny Core Linux 文件的步骤:

  • 创建 Tiny Core 文件夹
    在 TFTP 根目录下创建一个文件夹,用于存放 Tiny Core Linux 的文件:

    sudo mkdir -p /var/lib/tftpboot/tinycore
    
  • 复制 Tiny Core 文件
    将 Tiny Core Linux 的文件(如内核和初始 RAM 磁盘)复制到刚创建的文件夹中:

    sudo cp /path/to/tinycore.iso/tinycore/* /var/lib/tftpboot/tinycore/
    

    确保复制所有必要的文件,以便系统能够正常启动。

4. 启动服务

完成配置后,需要启动 dnsmasq 服务,以便提供 DHCP 和 TFTP 服务。以下是启动服务的步骤:

  • 重启 dnsmasq 服务
    使用以下命令重启 dnsmasq 服务,使配置生效:

    sudo systemctl restart dnsmasq
    
  • 检查服务状态
    确保 dnsmasq 服务正在运行,可以使用以下命令检查状态:

    sudo systemctl status dnsmasq
    

    如果服务正常运行,你应该看到“active (running)”的状态。

5. 配置客户端计算机

在需要通过 PXE 启动的计算机上,需要进行一些 BIOS 设置,以确保它能够从网络启动。以下是配置客户端计算机的步骤:

  • 进入 BIOS 设置
    启动计算机时,按下特定的键(如 F2、Delete 或 Esc)进入 BIOS 设置界面。

  • 启用 UEFI 启动
    在 BIOS 设置中,确保启用 UEFI 启动选项。通常在“Boot”或“Startup”菜单中可以找到相关设置。

  • 设置网络启动为首选项
    将网络启动(PXE)设置为首选启动设备。确保它在启动顺序中位于硬盘之前。

  • 保存并退出
    保存更改并退出 BIOS 设置。

6. 启动计算机

完成所有配置后,可以重启客户端计算机,以下是启动计算机的步骤:

  • 重启客户端计算机
    重新启动计算机,确保它能够通过网络启动。

  • 观察启动过程
    如果一切设置正确,计算机应该会通过网络连接到 PXE 服务器,并下载启动文件。你将看到 Tiny Core Linux 的启动界面。

  • 进行后续操作
    一旦 Tiny Core Linux 启动成功,你可以根据需要进行后续操作,如配置系统、安装软件等。

五、注意事项

  在通过 PXE 使用 UEFI 启动 Tiny Core Linux 的过程中,有一些关键的注意事项需要特别关注,以确保整个过程顺利进行。

1. 网络连接

  • 确保网络稳定

    • PXE 启动依赖于网络连接,因此确保 PXE 服务器和客户端计算机之间的网络连接稳定至关重要。使用有线连接通常比无线连接更可靠,尤其是在大规模部署的情况下。
  • DHCP 和 TFTP 服务器的可达性

    • 确保客户端计算机能够访问 DHCP 和 TFTP 服务器。可以通过在客户端计算机上使用 ping 命令测试与 PXE 服务器的连接。

2. DHCP 配置

  • 避免 IP 地址冲突

    • 在配置 DHCP 范围时,确保所分配的 IP 地址不与网络中其他设备的 IP 地址冲突。可以在网络中使用静态 IP 地址的设备上进行检查。
  • DHCP 选项设置

    • 确保 DHCP 服务器正确配置了启动文件的路径和名称。对于 UEFI 启动,通常需要指定 bootx64.efi 文件。

3. TFTP 配置

  • 文件权限

    • 确保 TFTP 根目录及其子目录的权限设置正确,以便 dnsmasq 或其他 TFTP 服务器能够访问这些文件。通常,设置为 777 权限可以确保所有用户都能读取文件,但在生产环境中应根据需要进行调整。
  • 文件完整性

    • 确保从 Tiny Core Linux ISO 中复制的启动文件和内核文件完整无误。如果文件损坏,可能导致启动失败。

4. UEFI 设置

  • 启用安全启动

    • 如果计算机启用了安全启动(Secure Boot),可能会阻止未签名的启动文件加载。在这种情况下,你可能需要在 BIOS 设置中禁用安全启动,或者确保使用的启动文件是经过签名的。
  • UEFI 启动顺序

    • 确保在 BIOS 设置中将网络启动设置为首选项。某些计算机可能会在启动时优先尝试从硬盘启动,导致 PXE 启动失败。

5. 日志和故障排除

  • 检查日志文件

    • 如果启动过程中出现问题,可以查看 dnsmasq 的日志文件,通常位于 /var/log/syslog 中。日志文件可以提供有关 DHCP 请求和 TFTP 文件传输的详细信息,有助于故障排除。
  • 使用调试模式

    • dnsmasq 配置中启用调试模式,可以获得更详细的输出信息,帮助识别问题所在。可以在配置文件中添加 log-querieslog-dhcp 选项。

6. 客户端计算机配置

  • BIOS 设置的准确性

    • 在配置客户端计算机的 BIOS 设置时,确保所有更改都已正确保存。错误的设置可能导致计算机无法通过网络启动。
  • 多重启动环境

    • 如果计算机上安装了多个操作系统,确保网络启动的优先级高于其他启动选项,以避免意外启动其他操作系统。

7. 安全性考虑

  • 网络安全

    • 在生产环境中,确保 PXE 服务器和网络的安全性。可以考虑使用 VLAN 或防火墙规则来限制对 PXE 服务器的访问。
  • 数据保护

    • 在使用 PXE 部署操作系统时,确保敏感数据的保护,避免在不安全的网络环境中传输敏感信息。

六、总结

  通过 PXE(Preboot Execution Environment)使用 UEFI(Unified Extensible Firmware Interface)启动 Tiny Core Linux 是一种高效且灵活的操作系统部署方式,特别适合无盘工作站和大规模计算环境。本文详细介绍了从环境准备到具体实施的各个步骤,包括配置 DHCP 和 TFTP 服务器、准备启动文件以及客户端计算机的设置。成功的关键在于确保网络连接稳定、DHCP 配置正确、TFTP 文件权限合适,以及客户端 BIOS 设置的准确性。此外,故障排除和安全性考虑也是不可忽视的因素。掌握这一技术不仅能够提高系统管理的效率,还能为快速部署和测试提供便利,极大地提升工作效率。希望读者能够在实践中应用这些知识,顺利实现网络启动。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/7875.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

根据关键字搜索商品API返回值解析:深入解析与代码实践

在电子商务和数据集成领域,API(应用程序编程接口)扮演着至关重要的角色。通过API,开发者可以访问和利用平台的数据资源,实现自动化和智能化的数据交互。本文将探讨如何根据关键字搜索商品API的返回值进行解析&#xff…

Python http打印(http打印body)flask demo(http调试demo、http demo、http printer)

文章目录 代码解释 代码 # flask_http_printer.pyfrom flask import Flask, request, jsonify import jsonapp Flask(__name__)app.route(/printinfo, methods[POST]) def print_info():# 分隔符separator "-" * 60# 获取请求头headers request.headers# 获取 JS…

「C/C++」C/C++ STL 之 迭代器

✨博客主页何曾参静谧的博客📌文章专栏「C/C++」C/C++程序设计📚全部专栏「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid函数说明「…

大模型微调,使用QLoRA和自定义数据集微调大模型(下)

4.8 数据预处理 在微调模型之前,我们不能直接使用原始数据集,需要将数据集中的提示转换成模型能够理解的格式。 为了使数据集适配微调流程,这里编写辅助函数来格式化输入数据集。具体来说,就是将对话摘要(即提示-响应…

【NOIP普及组】质因数分解

【NOIP普及组】质因数分解 C语言代码C代码Java代码Python代码 💐The Begin💐点点关注,收藏不迷路💐 已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。 输入 输入只有一行,包含一个正整数…

js--高阶函数之参数归一化

一、前言 参数归一化:是我们软件开发里一个非常重要且实用的技巧,用的好极大简化代码同时提升代码的可阅读性和可维护性。以下我用日期格式化为例,演示一下参数归一化的技巧。 二、日期格式化实例 /*** 辅助格式化函数* param {string|functi…

均值、期望、方差、标准差与协方差:基础概念解析

均值、期望、方差、标准差与协方差:基础概念解析 在统计学和数据分析中,均值、期望、方差、标准差和协方差是描述数据分布和关系的基本工具。理解这些概念有助于我们更好地分析和处理数据。本文将详细讲解这些概念的定义、计算方法及其在实际应用中的意…

shell基础

一、理解bash基础 默认的Linux shell——Bash(Bourne Again SHell)可以通过命令控制系统,执行文件操作,或者启动应用程序。它可以在命令行上交互式使用,或者你可以创建一个包含多个shell命令的文件,并像启…

js树状结构,自叶到根统计各级数量

$($(".tree-item").get().reverse()).each(function () {let self $(this).find("span").text()let prev $(this).parent(".two").prevAll(".tree-item").find("span").text()self self ? self : 0prev prev ? prev :…

学习threejs,使用JSON格式保存和加载整个场景

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE toJSON()方法 二、&a…

论文1—《基于卷积神经网络的手术机器人控制系统设计》文献阅读分析报告

论文报告:基于卷积神经网络的手术机器人控制系统设计 摘要 本研究针对传统手术机器人控制系统精准度不足的问题,提出了一种基于卷积神经网络的手术机器人控制系统设计。研究设计了控制系统的总体结构,并选用PCI插槽上直接内插CAN适配卡作为上…

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“

SLF4J常见问题 导入依赖&#xff1a; <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version> </dependency> <dependency><groupId>org.slf4j</groupId><arti…

资产管理系统:SpringBoot技术驱动

4系统概要设计 4.1概述 系统设计原则 以技术先进、系统实用、结构合理、产品主流、低成本、低维护量作为基本建设原则&#xff0c;规划系统的整体构架. 先进性&#xff1a; 在产品设计上&#xff0c;整个系统软硬件设备的设计符合高新技术的潮流&#xff0c;媒体数字化、压缩、…

YOLO可视化界面,目标检测前端页面。

使用PySide6/QT实现YOLOv5/v8可视化GUI页面 在人工智能和计算机视觉领域&#xff0c;YOLO&#xff08;You Only Look Once&#xff09;是一种广泛使用的实时目标检测算法。为了直观地展示YOLO算法的检测效果&#xff0c;我们可以使用Python中的PySide6库来创建一个简单的GUI应…

使用vuex动态设置全局字号

1.安装vuex npm install vuexnext --save 2.编写字号设置样式 // 定义字号变量 :root {--font-size: 18px;--font-size-step1: 16px;--font-size-step2: 14px;--font-size-step3: 12px; } // 定义样式&#xff08;全局样式文件&#xff09; body, page {font-size: var(--fo…

编程爱好者的福音:实用技巧与教程

引言 你是否曾经因为代码无法正常运行而感到挫败&#xff1f;或者在面对一行行复杂的代码时&#xff0c;不知道从何下手&#xff1f;编程&#xff0c;这项充满挑战与创造力的技能&#xff0c;往往让人既爱又恨。无论你是刚刚入门的初学者&#xff0c;还是已经具备一定经验的开发…

了解bootstrap改造asp.net core MVC的样式模板

我们都知道&#xff0c;在使用默认的asp.net core MVC模板建立项目的时候&#xff0c;里面的样式是已经事先被写好了的。一般来说都在css目录下的site.css和bootstrap.css及下面的bootstrap.min.css中。我们打开bootstrap这些样式文件&#xff0c;里面有大量的样式类的定义&…

通过使用 FFmpeg 提取某站视频 MV 中的音频为 MP3

无论是为了个人收藏、制作播客还是作为背景音乐&#xff0c;将视频中的音频提取出来都是一个非常实用的技能。本教程中简鹿办公将介绍两种方法来实现这一目标&#xff1a;一种是通过命令行工具 FFmpeg&#xff0c;另一种是使用图形界面工具 - 简鹿音频格式转换器。 使用 FFmpeg…

探秘国际数字影像产业园:数字化转型之路

数字化园区的概念正日益受到全球瞩目&#xff0c;这不仅是科技进步的必然产物&#xff0c;更是现代经济发展的迫切需求。对于国际数字影像产业园而言&#xff0c;打造数字化园区意味着通过尖端科技手段&#xff0c;全面提升园区的管理效率、服务质量及入驻企业和居民的生活体验…

外包干了2年,快要废了。。

先说一下自己的情况&#xff0c;普通本科&#xff0c;在外包干了2年多的功能测试&#xff0c;这几年因为大环境不好&#xff0c;我整个人心惊胆战的&#xff0c;怕自己卷铺盖走人了&#xff0c;我感觉自己不能够在这样蹉跎下去了&#xff0c;长时间呆在一个舒适的环境真的会让一…