草庐IT

在 Apple silicon Mac 上 DFU 模式修复或恢复 macOS 固件

sysin 2023-03-28 原文

搭载 Apple 芯片的 Mac 电脑 DFU 模式全新安装 macOS Ventura

请访问原文链接:https://sysin.org/blog/apple-silicon-mac-dfu/,查看最新版。原创作品,转载请保留出处。

作者主页:www.sysin.org


Mac computers with Apple silicon,简称 Apple silicon Mac,中文翻译为 “搭载 Apple 芯片的 Mac 电脑”。

2023.02.07 更新,增加了新机型 MacBook Pro(14、16 英寸,M2 Pro/M2 Max,2023 年)和 Mac mini (M2/M2 Pro 2023 年)。

2022.08.17 更新:增加了新机型 Mac Studio(2022 年)、MacBook Pro(13 英寸,M2,2022 年)和 MacBook Air(M2,2022 年)。

2021.11.28 更新:增加了新机型 2021 款搭载 Apple 芯片的 14 英寸或 16 英寸 MacBook Pro。

2021.05.25 更新:增加了新机型 iMac (24 英寸, M1, 2021 年) 相关内容。

本文最初基于 2020 年搭载 Apple M1 芯片的 Mac 写作,新版硬件相关特性可能有所变更,若有不当之处请指正,谢谢。

一、了解 Apple Silicon Mac 在系统与固件上的新特性

与基于 Intel 处理器的 Mac 相比,搭载 Apple 芯片 Mac 在系统和固件方面有一定的变化。

1. 了解 Apple Silicon Mac 机型

本任务适用以下搭载 Apple 芯片的 Mac 电脑:

从 2020 年末推出的某些机型开始,Apple 开启了 Mac 电脑从 Intel 处理器到 Apple 芯片的过渡。

搭载 Apple 芯片的 Mac 电脑:

  • 在 2021 年或之后推出的 MacBook Pro,以及 MacBook Pro(13 英寸,M1,2020 年)
  • 在 2022 年或之后推出的 MacBook Air,以及 MacBook Air(M1,2020 年)
  • 在 2021 年或之后推出的 iMac
  • 在 2020 年或之后推出的 Mac mini
  • Mac Studio

在搭载 Apple 芯片的 Mac 电脑上,“关于本机”会显示一个标有“芯片”的项目并跟有相应芯片的名称:

要打开“关于本机”,请选取苹果菜单  >“关于本机”。

在搭载 Intel 处理器的 Mac 电脑上,“关于本机”会显示一个标有“处理器”的项目并跟有 Intel 处理器的名称。搭载 Intel 处理器的 Mac 也称为基于 Intel 的 Mac。

参看:搭载 Apple 芯片的 Mac 电脑

2. macOS Recovery 启动方式不同

  • Apple 芯片:将 Mac 开机并继续按住电源按钮,直至看到启动选项窗口 (sysin),其中包含一个标有 “选项”(Option)字样的齿轮图标。选择 “选项”,然后点按 “继续”。
  • Intel 处理器:确保您的 Mac 已连接到互联网。然后,将 Mac 开机并立即按住 Command (⌘) + R,直至看到 Apple 标志或其他图像。

Apple Silicon Mac 启动管理器

3. Apple Silicon System Recovery(新特性)

Apple Silicon System Recovery 是除了 macOS Recovery 之外的一个新的隐藏恢复选项。如果由于某种原因 macOS Recovery 损坏,System recovery 将与 macOS Recovery 相同的方式加载 (sysin)。您可以使用它重新安装 macOS 和 macOS Recovery。

如果 macOS 和 System Revovery 都被破坏:如果您的 Mac 在启动时出现一个圆圈围绕的感叹号

4. Internet Recovery 已废弃

对比:

  • Apple 芯片:不存在

  • Intel 处理器

    Option-Command-R: 通过互联网从 macOS 恢复启动。使用此按键组合来重新安装 macOS 并升级到与您 Mac 兼容的最新版本 macOS。

    Option-Shift-Command-R: 通过互联网从 macOS 恢复启动。使用此按键组合来重新安装随 Mac 预装的 macOS 版本或仍可用的最接近版本。

5. Mac Sharing Mode(共享磁盘模式)替代了 Target Disk Mode(目标磁盘模式)

注意:建议使用雷雳 3雷雳 4 连接线,否则速度堪忧 (sysin)。

  • Apple 芯片:长按电源键进入 “选项” > 进入恢复模式 > 菜单 “实用工具” > “共享磁盘”。

    链接:在搭载 Apple 芯片的 Mac 和另一台 Mac 之间传输文件

    1. 用 USB、USB-C 或雷雳线缆将两台电脑连接起来。

    2. 在搭载 Apple 芯片的 Mac 上,选取苹果菜单  > “关机”。

    3. 按住电源按钮直至 “正在载入启动选项” 出现。

    4. 点按 “选项”,然后点按 “继续”。

      如有要求,请输入管理员帐户的密码。

      Mac 将以恢复模式打开。

    5. 选取 “实用工具” > “共享磁盘”。

    6. 选择要共享的磁盘或宗卷,然后点按 “开始共享”。

    7. 在另一台 Mac 上,打开 “访达” 窗口,然后点按边栏中的 “网络”(在 “位置” 下方)。

    8. 在 “网络” 窗口中,连按含共享磁盘或宗卷的 Mac,点按 “连接身份”,在 “连接身份” 窗口中选择 “客人”,然后点按 “连接”。

    9. 传输文件。

    10. 文件传输完成后,推出另一台 Mac 上的磁盘。

  • Intel 处理器:同时按住电源键和 T 键。

    链接:使用目标磁盘模式在两台 Mac 电脑之间传输文件

    1. 用 FireWire 或雷雳线缆将两台电脑连接起来。

    2. 在要以目标磁盘模式用作磁盘的 Mac 上,请执行以下一项操作:

      • 如果电脑关闭,则在按住 T 键的同时启动它。

      • 如果电脑已开机,请选取苹果菜单  > “系统偏好设置”,点按 “启动磁盘”,然后点按 “目标磁盘模式”。

      当电脑启动后,就会在另一台电脑的桌面上出现一个磁盘图标。

    3. 您可以将文件拖入或拖出磁盘来传输它们。

    4. 将磁盘图标拖移到废纸篓,将其推出。

      在拖移时,废纸篓图标会变为 “推出” 图标。

    5. 在用作磁盘的 Mac 上,按下电源按钮将它关闭,然后断开电缆连接。

6. 安全模式(启动方式不同)

操作方式如下 (sysin):

  • 以安全模式启动搭载 Intel 芯片的 Mac

    1. 在 Mac 上,选取苹果菜单  > “关机”。

      Mac 关机后,等待 10 秒钟。

    2. 重新启动 Mac,然后立即按住 Shift 键。

    3. 看到登录窗口时松开 Shift 键。

  • 以安全模式启动搭载 Apple 芯片的 Mac

    1. 在 Mac 上,选取苹果菜单  > “关机”。

      Mac 关机后,等待 10 秒钟。

    2. 按住电源按钮直至启动磁盘和 “选项” 出现。

    3. 按住 Shift 键,然后在安全模式中点按 “继续”。

7. Apple Silicon Mac “外部启动” 默认开启

参看:

8. macOS ipsw 软件包

没错,就像 iOS,Apple silicon Mac 可以通过 ipsw 文件进行固件恢复和更新(通过 Apple Configurator 2)。

9. DFU 模式

DFU 的全称是 Device Firmware Upgrade,即 iOS 固件的强制升降级模式。Apple silicon Mac 同样可以启动到 DFU 模式。

如何启动到 DFU 模式,将在下文 “步骤 2:准备目标 Mac” 描述 (sysin)。

10. 系统版本是否可以降级?

Apple silicon Mac 的 macOS 版本仍然可以降级。

默认启用 “完整安全性”(等于 iOS),需要将安全策略设置为 “降级安全性”,详见:在搭载 Apple 芯片的 Mac 上更改启动磁盘的安全性设置

对比参看:关于搭载 Apple T2 安全芯片的 Mac 上的“启动安全性实用工具”

11. 了解 Apple silicon Mac 恢复系统的方式

相比搭载 Apple T2 安全芯片且基于 Intel 的 Mac 电脑,搭载 Apple 芯片的 Mac 除了少了 Internet Recovery,其他恢复方式是类似的,但是可以手动下载 ipsw 进行修复或者恢复,这样可以指定版本。

  • 1. macOS Recovery
  • 2. System Recovery – (如果 macOS Recovery 不可用,将自动启动)
  • 3. macOS Big Sur USB 启动安装 – (“外部启动” 默认开启,操作方式 并无变化,除了引导安装器的按键不同)
    • Intel 处理器:将 Mac 开机或重新启动后,立即按住 Option (Alt) ⌥ 键。出现可引导宗卷的黑屏时,松开 Option 键。
    • Apple 芯片:将 Mac 开机并继续按住 电源按钮,直到看到启动选项窗口,其中会显示可引导宗卷。
  • 4. Apple Configurator 2 REVIVE(修复)选项 – 将修复固件并重新安装 macOS Recovery(更新固件并将 recoveryOS 更新到最新版本),用户数据仍然保留在 SSD 中
  • 5. Apple Configurator 2 RESTORE(恢复)选项 – 将重新安装 macOS Recovery, 将抹掉整个磁盘重新安装 macOS,当然用户数据也会抹掉

本文用于描述使用 Apple Configurator 2 恢复系统。

二、准备和要求

  1. 一台额外的 Mac,我们这里称之为 “主 Mac” (sysin),配备 Type-C 接口,Intel 处理器和 Apple 芯片的机型都可以。

  2. 系统版本 macOS Catalina 10.15.6 及以上(建议当前最新版)。

  3. 下载 Apple Configurator 2

  4. 下载 macOS ipsw 格式软件。

    Apple Configurator 2 将自动下载最新版 ipsw 固件(类似 iOS),推荐手动下载到本地(可以指定版本),直接拖拽到 Apple Configurator 2 中进行恢复。

  5. USB-C to USB-C Cable:支持的 USB-C 转 USB-C 充电线,如 由 Apple 售卖的产品雷雳连接线 更佳。

  6. 线缆的连接:“主 Mac” 可以任意 C 口,目标 Mac(要被恢复的 Mac)必须是指定 C 口(详见下文描述)。

  7. 确保 “主 Mac” 已插入电源或者电池电量充足,有效的互联网连接。

三、修复或恢复搭载 Apple 芯片的 Mac

步骤 1:连接 USB-C 线缆并在 “主 Mac” 上打开 Apple Configurator 2

  1. 确保您的 “主 Mac” 已插入电源且已开机,连接 Type-C 线缆(任意口)。

  2. 插入 USB-C 线缆到目标 Mac(要被恢复的 Mac)的指定 C 口。

    搭载 Apple 芯片的 14 英寸或 16 英寸 MacBook Pro 的左侧,显示靠后的两个雷雳 4 (USB-C) 端口,其中高亮标记了最左侧的端口。

    搭载 Apple 芯片的 Mac mini 的背面,显示两个雷雳 3 或 4 (USB-C) 端口的展开视图,其中高亮标记了最左侧的端口。

    MacBook Air(M2,2022 年)的左侧,显示靠后的两个雷雳 3 (USB-C) 端口,其中标出了最左侧的端口。

    搭载 Apple 芯片的 MacBook Pro(13 英寸)的左侧,显示靠后的两个雷雳 4 (USB-C) 端口,其中标出了最左侧的端口。

    Mac Studio(2022 年)的背面,显示靠后的四个雷雳 4 (USB-C) 端口,其中标出了最右侧的端口。

    iMac(24 英寸,M1,2021 年)的背面,显示靠后的两个雷雳 3 (USB-C) 端口,其中标出了最右侧的端口。

    iMac(24 英寸,M1,2021 年)的背面,显示靠后的四个雷雳 3 (USB-C) 端口,其中标出了最右侧的端口。

    图像显示用户应该选择与搭载 Apple 芯片的 MacBook Air 左侧显示器距离最近的端口。

  3. 在 “主 Mac” 上启动 Apple Configurator 2。

步骤 2:准备目标 Mac(被恢复的 Mac)

(1) 准备 iMac(24 英寸,M1,2021 年)(进入 DFU 模式)

  1. 按下电源按钮。

  2. 按住电源按钮的同时,按下以下所有三个按键大约 10 秒钟:

    • 右 Shift 键
    • 左 Option 键
    • 左 Control 键
  3. 10 秒钟后,立即松开这三个按键但继续按住电源按钮,直至 Apple Configurator 2 中出现 DFU 图标。

    【注】在您要修复或恢复的 iMac(24 英寸,M1,2021 年)上不会出现任何屏幕活动。

(2) 准备 Mac mini 或 Mac Studio(进入 DFU 模式)

  1. 插入显示器以便查看恢复过程何时完成。

  2. 断开 Mac mini 的电源至少 10 秒钟。

  3. 按住电源按钮。

  4. 在按住电源按钮的同时重新连接电源。

  5. 松开电源按钮。

    状态指示灯应该呈琥珀色。

    【注】Mac mini 不会出现任何屏幕活动。

(3) 准备 MacBook Air 或者 Macbook Pro(进入 DFU 模式)

  1. 按下电源按钮。

  2. 按住电源按钮的同时,按下以下所有三个按键大约 10 秒钟:

    • 右 Shift 键
    • 左 Option 键
    • 左 Control 键
  3. 10 秒钟后,立即松开这三个按键但继续按住电源按钮,直至设备出现在 Apple Configurator 2 中。

    【注】在您要尝试修复或恢复的 MacBook Air 或 MacBook Pro 上不会出现任何屏幕活动。如果 MacBook Pro 使用 MagSafe 接口,则没有 LED 充电指示灯。

(4) 验证状态

事实证明,让 Apple Silicon Mac 进入 DFU 模式并不那么容易。往往需要按照 Apple 的描述多尝试几次,如果无法进入 DFU 模式需要重新开始,以下几个要点请参考:

  1. 目标 Mac 必须关机才能开始。

  2. 同时按住 电源键右 Shift 键左 Control 键左 Option 键 10 秒(看着打开 Apple Configurator 2 的画面计数,可以让电脑显示秒数)然后松开除电源键以外的所有键 (sysin)。继续按住电源按钮 8 秒,整个过程 18 秒。如果计数超过 20 秒并且没有看到 DFU 图标,需要重新尝试该过程。

  3. 当目标 Mac 正确启动到 DFU 模式时,Apple Configurator 2 中显示一个大的 DFU 图标(如下图)。此时可以松开电源按钮。

在 “主 Mac” 的 Apple Configurator 2 状态变化如下:

(1)目标 Mac 尚未启动到 DFU 模式,显示如下:

(2)目标 Mac 已经正确启动到 DFU 模式

(3)目标 Mac 线缆连接正确,已经启动到了恢复模式选择窗口(仅供参考,这里不需要启动到该模式)

(5) 退出 DFU 模式的方法

这里描述的是退出 DFU 模式的方法,并非需要此操作步骤。操作成功后会自动退出 DFU 模式。

  • 在 DFU 图标上点击右键,菜单 “高级”,选择 “重新启动设备” 或者 “关闭设备”

  • 上述操作如果无效,长按电源按钮(超过 4 秒)即可关闭设备并退出 DFU 模式。

  • 恢复操作成功后会自动退出 DFU 模式。

步骤 3:拖拽 ipsw 文件到 DFU 画面进行恢复

请将下载的 macOS ipsw 文件拖拽到 DFU 图标上开始恢复。

拖拽 macOS ipsw 文件后,会弹出提示框,选择 “恢复”(“Restore”) 将抹掉磁盘重新安装 macOS,整个过程大约需要 15 分钟。

弹出提示画面,选择 “恢复”(“Restore”),还原至出厂设置。(当然也可以点击 “修复”,保留所有内容和设置)

如果你没有下载 ipsw(或者不知道哪里手动下载 ipsw),直接查看下面的 “替代步骤 3”

替代步骤 3:修复或者恢复固件(无需准备 ipsw,自动联网下载)

此方式对网络要求较高,另外下载的是最新版,无法指定版本,不推荐。

选项 1:修复(Revive)固件并安装最新的 recoveryOS

  1. 在 Apple Configurator 2 的设备窗口中,选择要修复其芯片固件并将其 recoveryOS 更新到最新版本的 Mac。

  2. 请执行以下一项操作:

    • 选取 “操作” > “高级” > “修复设备”,然后点按 “修复”。

    • 按住 Control 键点按所选设备并选取 “高级” > “修复设备”,然后点按 “修复”。

      【注】如果在此过程中任意一台 Mac 电量耗尽,请再次开始修复过程。

  3. 等待过程完成。在此过程中,Apple 标志会出现和消失。

  4. 修复过程完成后,Mac 会重新启动。

    【重要事项】 修复固件时,必须确认已成功修复,因为 Apple Configurator 2 可能不会提醒您。

  5. 退出 Apple Configurator 2,然后拔下任何适配器和线缆。

选项 2:恢复(Restore)固件、抹掉所有数据并重新安装最新版本的 recoveryOS 和 macOS

  1. 在 Apple Configurator 2 的设备窗口中,选择要恢复的 Mac。

  2. 请执行以下一项操作:

    • 选取 “操作” > “恢复”,然后点按 “恢复”。

    • 按住 Control 键点按所选设备并选取 “操作” > “恢复”,然后点按 “恢复”。

      【注】如果在此过程中任意一台 Mac 电量耗尽,请再次开始恢复过程。

  3. 等待过程完成。在此过程中,Apple 标志会出现和消失。

  4. 恢复过程完成后,Mac 会重新启动。

    【重要事项】 恢复 Mac 时,必须确认已成功恢复,因为 Apple Configurator 2 可能不会提醒您。

  5. 如果恢复成功,将显示 macOS 设置助理。

  6. 退出 Apple Configurator 2 并拔下任何适配器和线缆。

四、题外话:对比修复基于 Intel 的 Mac

使用 Apple Configurator 修复或恢复基于 Intel 的 Mac 的差异:

  • 目标 Mac 使用右侧的 USB-C(Apple 芯片 Mac 笔记本使用左侧端口,台式机使用右侧端口)。

  • 默认仅有 “修复” 选项,将固件(T2 芯片固件)更新到最新版本(但有一个例外如下)。

  • 仅限 Mac Pro(2019 年):恢复固件、抹掉所有数据并重新安装最新版本的 recoveryOS 和 macOS。

下表列出了修复或恢复 iOS 及衍生系统设备与 Mac 的差异 (sysin)。

设备 修复 恢复
iPhone 和 iPod touch 可能保留用户数据(如果可恢复)。 抹掉用户数据。抹掉并重新安装最新版本的 iOS。
iPad 可能保留用户数据(如果可恢复)。 抹掉用户数据。抹掉并重新安装最新版本的 iPadOS。
Apple TV 可能保留用户数据(如果可恢复)。 抹掉用户数据。抹掉并重新安装最新版本的 Apple tvOS。
搭载 Apple 芯片的 Mac 将 sepOS 和 recoveryOS 更新到公开发布的最新版本。可能保留用户数据(如果可恢复)。 抹掉用户数据。抹掉并重新安装 sepOS、recoveryOS 和 macOS 公开发布的最新版本。
搭载 Apple T2 安全芯片且基于 Intel 的 Mac 仅更新 T2 芯片固件。可能保留用户数据(如果可恢复)。 抹掉用户数据。仅抹掉并重新安装 T2 芯片固件。必须使用“互联网恢复”重新安装 recoveryOS 和 macOS。

有关在 Apple silicon Mac 上 DFU 模式修复或恢复 macOS 固件的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  4. ruby - 是否有用于序列化和反序列化各种格式的对象层次结构的模式? - 2

    给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最

  5. ruby-on-rails - environment.rb 中设置的常量在开发模式中消失 - 2

    了解Rails缓存如何工作的人可以真正帮助我。这是嵌套在Rails::Initializer.runblock中的代码:config.after_initializedoSomeClass.const_set'SOME_CONST','SOME_VAL'end现在,如果我运行script/server并发出请求,一切都很好。然而,在我的Rails应用程序的第二个请求中,一切都因单元化常量错误而变得糟糕。在生产模式下,我可以成功发出第二个请求,这意味着常量仍然存在。我已通过将以上内容更改为以下内容来解决问题:config.after_initializedorequire'some_cl

  6. Ruby:标准递归模式 - 2

    我经常迷上ruby​​的一件事是递归模式。例如,假设我有一个数组,它可能包含无限深度的数组作为元素。所以,例如:my_array=[1,[2,3,[4,5,[6,7]]]]我想创建一个方法,可以将数组展平为[1,2,3,4,5,6,7]。我知道.flatten可以完成这项工作,但这个问题是作为我经常遇到的递归问题的一个例子-因此我试图找到一个更可重用的解决方案。简而言之-我猜这种事情有一个标准模式,但我想不出任何特别优雅的东西。任何想法表示赞赏 最佳答案 递归是一种方法,它不依赖于语言。您在编写算法时要考虑两种情况:再次调用函数的情

  7. ruby - 在 Ruby 中查找多个正则表达式匹配的模式和位置 - 2

    这应该是一个简单的问题,但我找不到任何相关信息。给定一个Ruby中的正则表达式,对于每个匹配项,我需要检索匹配的模式$1、$2,但我还需要匹配位置。我知道=~运算符为我提供了第一个匹配项的位置,而string.scan(/regex/)为我提供了所有匹配模式。如果可能,我需要在同一步骤中获得两个结果。 最佳答案 MatchDatastring.scan(regex)do$1#Patternatfirstposition$2#Patternatsecondposition$~.offset(1)#Startingandendingpo

  8. ruby - sinatra 框架的 MVC 模式 - 2

    我想开始使用“Sinatra”框架进行编码,但我找不到该框架的“MVC”模式。是“MVC-Sinatra”模式或框架吗? 最佳答案 您可能想查看Padrino这是一个围绕Sinatra构建的框架,可为您的项目提供更“类似Rails”的感觉,但没有那么多隐藏的魔法。这是使用Sinatra可以做什么的一个很好的例子。虽然如果您需要开始使用这很好,但我个人建议您将它用作学习工具,以对您来说最有意义的方式使用Sinatra构建您自己的应用程序。写一些测试/期望,写一些代码,通过测试-重复:)至于ORM,你还应该结帐Sequel其中(imho

  9. ruby - 如何修复 RVM gem "[ missing bin/ruby ]" - 2

    执行rvmlist后,我得到以下输出:rvmrubiesgems[missingbin/ruby]=*ruby-2.0.0-p645[x86_64]ruby-2.1.6[x86_64]ruby-2.2.1[x86_64]gems[missingbin/ruby]是什么意思?gems是某种系统gemset吗?它不是我创建的,我不知道我是否可以或应该删除它。 最佳答案 在我跑完之后:rvmfix-permissions然后我能够卸载具有[缺少bin/ruby]的版本。 关于ruby-如何修复

  10. ruby-on-rails - Rails 如何创建数据模式种子数据 - 2

    有没有一种方法可以自动生成种子数据文件并创建种子数据,就像您在下面链接中的Laravel中看到的那样?LaravelDatabaseMigrations&Seed我在另一个应用程序上看到在Rails的db文件夹下创建了一些带有时间戳的文件,其中包含种子数据。创建它的好方法是什么? 最佳答案 我建议你使用Fabrication的组合gem和Faker.Fabrication允许您编写一个模式来构建您的对象,而Faker为您提供虚假数据,如姓名、电子邮件、电话号码等。这是制造商的样子:Fabricator(:user)dousernam

随机推荐