Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorial:oc3_hard_drives:zh [2022/08/11 05:12]
fight_xing [OC 教程:硬盘]
tutorial:oc3_hard_drives:zh [2023/12/01 08:20] (current)
hfsr [OC 教程:硬盘]
Line 2: Line 2:
 ================= =================
  
-当你 [[tutorial:​oc2_writing_code:​zh|编写程序]] 时,通常是希望程序文件一直存在的,所以使用 `/tmp` 目录并不是长久之计。将 [[item:hdd|硬盘(英文)]]放入计算机,它将自动挂载在 `/mnt` 目录下。并以其地址的前几个字母命名。尽管这可能已经够用了,但是你可能想知道如何灵活且优雅地使用它。本教程将会讲述标签与安装硬盘的概念。+当你[[tutorial:​oc2_writing_code:​zh|编写程序]]时,通常是希望程序文件一直存在的,所以使用 `/tmp` 目录并长久之计。这就需要用到[[item:hard_disk_drive:​zh|硬盘]]。将硬盘装进电脑时,它将自动挂载`/​mnt`目录下。并以其地址的前几个字母命名。尽管这对于体验其功能可能够用了,但是你在之后可能要更灵活且舒适地使用它。本教程将会介绍修改硬盘标签与挂载硬盘的概念。
  
-*注意*:本教程的所有内容同样适用于 [[item:floppy|软盘(英文)]]。+**注意:**本教程的所有概念同样适用于 [[item:floppy_disk:​zh|软盘]]。
  
-首先,将一个全新的硬盘插入计算机+首先,将一个全新的硬盘插入电脑
  
 {{https://​i.imgur.com/​Nr81Dx2.png?​700}} {{https://​i.imgur.com/​Nr81Dx2.png?​700}}
  
-会注意到一个提示表明它已经被分配了一个默认地址(那个被截的、字母数字混合的字符串)。你不必记住它,因为它只做参考。接下来,打开屏幕 GUI 并且输入 `df`。该程序将列出当前所有的文件系统与挂载点。在它们中,你可以注意到只有一个是以地址显示的(不像 ROM 和临时文件系统)。那个地址应当是你先前在提示中看到的地址。+你会在硬盘的提示文本中注意到,它已经被分配了一个地址(那个被截的、字母数字混合的字符串)。你不必记住它,因为它显示的目的仅为参考。接下来,打开屏幕GUI并且输入`df`。该程序将列出当前所有的文件系统与挂载点。在它们中,你可以注意到只有一个是以地址显示的(不像 ROM 和临时文件系统)。那个地址应当是你先前在提示中看到的地址。
  
 {{https://​i.imgur.com/​22yfaRh.png?​700}} {{https://​i.imgur.com/​22yfaRh.png?​700}}
  
-现在我们要做的是为我们的硬盘指定一个名称,所以我们不必一直使用地址来称呼它。运行 `label` 命令获取关于如何使用标签程序的信息。我们要使用 `-a` 参数,但你也可以通过提供硬盘默认位于 ​`/mnt` 目录挂载点路径来给硬盘打上标签。 +现在我们要做的是为硬盘指定一个名称,这样我们不必一直用地址来引用它。运行`label`命令即可获取关于如何使用标签程序的信息。我们要使用`-a`参数,但你也可以通过提供指向其在`/​mnt`目录下默认挂载点路径来给它设定标签。 ​  
-使用期望的参数运行程序,也就是你想给硬盘取的名字。请注意屏幕截图中的 `92a` 是硬盘地址的开头。对于大部分需要地址的程序,你可以写地址,地址也是连接到电脑的组件中唯一的一个+使用所需参数运行程序,参数也就是你想给硬盘取的名字。请注意屏幕截图中的`92a`是硬盘地址的开头。对于大部分需要地址的程序,你可以使用简写地址,只要简写地址连接到电脑的组件中仍然唯一。 ​ 
  
-当你已经命名好你的硬盘,这个名字也会显示在硬盘的提示中。再次运行 `df` 来确认硬盘已被命名:+当你命名好你的硬盘,这个名字也会显示在硬盘的提示文本中。再次运行`df`来确认硬盘已被命名:
  
 {{https://​i.imgur.com/​X1ws656.png?​700}} {{https://​i.imgur.com/​X1ws656.png?​700}}
  
-We can now mount the hard drive while referring to it by name. Type `mount <​label>​ <​path>​` to mount the hard drive with the specified label at the specified path. Hard drives can be mounted in multiple locations, so doing that will not invalidate the default mount in the `/mnt` folder. +我们现在可以通过使用硬盘名称的方法挂载它了。输入`mount <标签名> <​路径>​`来将指定标签名对应的硬盘挂载到指定路径。硬盘可以被同时挂载到多个位置,因此执行此操作并不会使`/​mnt`文件夹下的默认挂载点失效。
-我们现在可以通过使用硬盘名称的方法挂载它了。输入 `mount <名> <​路径>​` 来挂载带有给定标签、位于给定路径的硬盘。硬盘可以被挂载到不同位置,+
  
-当前状态下,电脑不会在重启保存任何状态。这意味着如果你关或重启你的电脑、电脑崩溃或断电,你就必须重新挂载硬盘。这很快就会变得令恼火,所有让我们创建一个自动挂载硬盘的脚本吧。每块硬盘都可以有它们独立的脚本。这个脚本必须被命名为 `autorun` 或 `autorun.lua`,且必须放在硬盘的根目录下。这个脚本会在硬盘连接到电脑时自动执行——除非你通过禁用自动运行。+当前状态下,电脑不会在重启保存任何状态。这意味着如果你关或重启你的电脑、电脑崩溃或断电,你就必须重新挂载硬盘。这样的话很快就会厌烦,所创建一个autorun(自动运行)脚本吧,让硬盘在插入时自动挂载。每块硬盘都可以有自己autorun脚本脚,脚本必须被命名为`autorun`或`autorun.lua`,且必须放在硬盘文件夹结构的根目录下。这个脚本会在硬盘连接到电脑时自动执行——除非你通过[[api:​filesystem:​zh|filesystem(文件系统) API]]禁用自动运行功能
  
-切换到你新挂载的硬盘,执行 `edit autorun.lua`。+切换到你新挂载的文件夹中,执行`edit autorun.lua`。
  
 {{https://​i.imgur.com/​QYgrS3z.png?​700}} {{https://​i.imgur.com/​QYgrS3z.png?​700}}
  
-自动运行脚本需要获取储存介质的代理作为它们的第一个参数,所以我们可以使用 Lua 的变长语获取它。我们会将它传递到 `fs.mount()` 函数,你可以在 [[api:​filesystem|文件系统 API(英文)]] 找到它的文档。+autorun脚本接收其所在介质的代理对象作为的第一个参数,所以我们可以使用Lua的变长参数获取它。我们会将它传递到`fs.mount()`函数,你可以在[[api:​filesystem:zh|filesystem(文件系统API]]找到它的文档。
  
 {{https://​i.imgur.com/​J5inxhI.png?​700}} {{https://​i.imgur.com/​J5inxhI.png?​700}}
  
-保存并关闭文件。在从电脑移除并重新插入硬盘后,运行 `ls`,你会发现硬盘已经被自动挂载了。+保存并关闭文件。在从电脑移除并重新插入硬盘后,运行`ls`,你会发现硬盘已经被自动挂载了。
  
 {{https://​i.imgur.com/​Us0kTvl.png?​700}} {{https://​i.imgur.com/​Us0kTvl.png?​700}}