VirtualBox 安装Linux 虚拟机添加磁盘

本文详细介绍如何使用fdisk进行磁盘分区,包括查看分区信息、新建与删除分区等操作。同时,深入讲解mke2fs与mkfs命令用于格式化分区为不同文件系统的方法,如ext2、ext3等。最后,演示mount与umount命令实现文件系统的挂载与卸载过程。
部署运行你感兴趣的模型镜像

在这里插入图片描述
建立分区
fdisk 是一款强大的磁盘操作工具,来自util-linux软件包,使我们在文件系统管理过程中使用的极为频繁的一个指令,我们可以用它查看磁盘分区表以及分区结构,同时能够利用它进行磁盘分区。使用起来很简单,一般只有一个参数-l

fdisk [–l] 设备名称
=>fdisk最常用的一个参数,输出整个系统内的设备分区。若有多个设备,则可以输出指定设备的分区信息
[root@server ~]# fdisk –l
Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
/dev/sda1 * 1 25 200781 83 Linux

在上面显示的数据中:
第一行sd表示系统使用的是SCSI硬盘,a则表示系统的第一块硬盘,如果还有第二块则是sdb,以此类推。,接下来就表示硬盘的容量了。
第二行 表示硬盘有255个磁头,63个扇区,2610个柱面,利用我们上面所学的磁盘容量计算公式,大家能不能自己算算这个硬盘的容量呢?
磁盘容量=2556338913 *512(Bytes).大家自己试试看。
第三行则显示每个柱面的大小。
下面各列的含义为:
Device:设备名称
Boot:表示否为开机引导模块。
Start:分区起始柱面。
End:分区结束柱面。
Blocks:以1K为单位的容量。
ID,System:表示这个分区内的文件系统式什么?不过这里通常只是一个提示而已,不见得一定代表此分区类型。
除了列出硬盘的分区信息,fdisk还可以用于系统分区。

fdisk /dev/sda =>fdisk直接接设备名,小心别接数字,不针对分区。

The number of cylinders for this disk is set to 38913.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:

  1. software that runs at boot time (e.g., old versions of LILO)
  2. booting and partitioning software from other OSs
    (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): =>在此处输入操作指令,输入?显示能够输入的指令
Command (m for help): ?
?: unknown command
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition =>删除一个分区
l list known partition types
m print this menu
n add a new partition =>添加一个分区
o create a new empty DOS partition table
p print the partition table =>列出当前分区信息
q quit without saving changes =>不保存改变退出新建分区
s create a new empty Sun disklabel
t change a partition’s system id =>改变分区ID
u change display/entry units
v verify the partition table
w write table to disk and exit =>将分区操作写入分区表
x extra functionality (experts only)
Command (m for help): p

Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 15323 122881185 83 Linux
/dev/sda3 15324 20422 40957717+ 83 Linux
/dev/sda4 20423 38913 148528957+ 5 Extended
/dev/sda5 20423 20932 4096543+ 82 Linux swap / Solaris
注意/dev/sda4,这是扩展分区,它其实相当于一个容器,在它下面包含了所有的逻辑分区,从前面的内容中我们了解到一个系统中最多只能有4个主分区。但是如果一个系统分了4个主分区的话,那么系统就固定下来了,不能再添加任何分区,所以一般系统都是3个主分区,一个扩展分区,也就是所谓的(3P+E)模式。下面我们来新建分区看看。

[root@server ~]# fdisk /dev/sda
The number of cylinders for this disk is set to 38913.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:

  1. software that runs at boot time (e.g., old versions of LILO)
  2. booting and partitioning software from other OSs
    (e.g., DOS FDISK, OS/2 FDISK)
    Command (m for help): n =>执行n添加新分区
    First cylinder (20933-38913, default 20933):
    Using default value 20933
    Last cylinder or +size or +sizeM or +sizeK (20933-38913, default 38913): +1000M
    =>这里自己随意,可以填柱面数,也可以直接填你想要的分区大小,一般都是直接指定大小,因为柱面数不怎么直观。如果不填直接回车的话就会把所有剩余的容量做成一个分区。
    Command (m for help): p =>再次查看分区信息,发现已经产生了一个新分区。
    Disk /dev/sda: 320.0 GB, 320072933376 bytes
    255 heads, 63 sectors/track, 38913 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot Start End Blocks Id System
    /dev/sda1 * 1 25 200781 83 Linux
    /dev/sda2 26 15323 122881185 83 Linux
    /dev/sda3 15324 20422 40957717+ 83 Linux
    /dev/sda4 20423 38913 148528957+ 5 Extended
    /dev/sda5 20423 20932 4096543+ 82 Linux swap / Solaris
    /dev/sda6 20933 21055 987966 83 Linux
    这时并没有写进内存中,如果你不想保存的话,直接按q退出即可。如果你想保存的话,输入w将改变保存。然后再退出程序。退出之后,在命令行执行partprobe指令,可以在不重启系统的情况下,将改变写进分区表,这个指令很重要,没执行的话分区不能算真正创建。这个指令没有参数,直接执行就行了。大家多练习练习,新建分区,删除分区。

Command (m for help): d =>输入d就会提示你要删除哪个分区,在下一行输分区号
Partition number (1-6): 6 =>刚刚新建的主分区
Command (m for help): p =>再次查看
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 15323 122881185 83 Linux
/dev/sda3 15324 20422 40957717+ 83 Linux
/dev/sda4 20423 38913 148528957+ 5 Extended
/dev/sda5 20423 20932 4096543+ 82 Linux swap / Solaris分区6已经被删除了。

Command (m for help): q =>输入q不保存退出,因为后面我们要用到新建的分区6

	格式化分区

上面详细讲解了怎么新建一个分区,但这只是完成了创建文件系统的第一步,新建了分区之后,我们需要将分区格式化为需要的文件系统。主要用到mke2fs或mkfs指令。mke2fs用于创建ext2,ext3文件系统,默认情况下创建ext2文件系统,而mkfs可创建任何一种Linux支持的文件系统,大家在命令行输入mkfs然后按下两次[Tab],就可以看到。
mkfs [tab][tab]
 mkfs mkfs.ext2 mkfs.ext4 mkfs.msdos mkfs.vfat
 mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.ntfs mkfs.xfs
 这可以看到使用mkfs可以创建的文件系统,不同的系统支持的文件系统可能不同,大家不要奇怪怎么和书上的不一样啊!
下面说下具体的应用:
mke2fs [options] /dev/sda* ==>后面接需要格式化的分区
常用参数:
-b blocks-size,指定文件系统块大小,在1024,2048,4096中选择
-i 指定文件系统inode大小,也就是多少容量给予一个inode
-L 后面可以接卷标(label)名称,在后面说e2label是会再次介绍
-j mke2fs默认是创建ext2文件系统,加上-j参数后,会主动加入journal成为ext3.
现在给定需求:
 格式化刚刚新建的/dev/sda4分区,要求设定文件系统的卷标为shuangxing
 将block块大小指定为2K
 Inode大小指定为4K
 格式化成ext3文件系统
[root@server~]# mke2fs -L shuangxing -b 2048 -i 4096 -j /dev/sda6
mke2fs 1.39 (29-May-2006)
Could not stat /dev/sda6 — 没有那个文件或目录

The device apparently does not exist; did you specify it correctly?

发现报错了,系统没找到要格式化的设备,大家想想是怎么回事?明明已经分区了啊!
大家不知道有没有想到前面说得partprobe指令!
[root@server ~]# ls /dev/sda =>发现添加的分区并没有写进内存
sda sda1 sda2 sda3 sda4 sda5
[root@server ~]# partprobe =>执行一下partprobe
[root@server ~]# ls /dev/sda =>发现添加的分区出现了
sda sda1 sda2 sda3 sda4 sda5 sda6

发现了partprobe的神奇了吧!可以在不重启系统的情况下将改变写进分区表。

下面我们再来做格式的操作。
[root@server ~]# mke2fs -L shuangxing -b 2048 -i 4096 -j /dev/sda6
mke2fs 1.39 (29-May-2006)
Filesystem label=shuangxing =>指定文件系统标签
OS type: Linux
Block size=2048 (log=1) =>制定块大小
Fragment size=2048 (log=1)
247008 inodes, 493982 blocks
24699 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=506462208
31 block groups
16384 blocks per group, 16384 fragments per group
7968 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368

Writing inode tables: done
Creating journal (8192 blocks): done =>成功创建日志
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

使用mke2fs的时候要特别注意-j这个参数,没加的话就不会格式化为ext3文件系统。在一般情况下,这个指令用的很少,笔者不建议使用,建议使用下面说的mkfs。

[root@server ~]# mkfs [-t 文件系统格式] 设备文件名
mkfs可用的参数很少,一般都是只加-t参数,指定要格式化的分区的文件系统格式,有ext2,ext3,ext4,vfat等等。也可以不加任何参数直接使用mkfs.ext2,mkfs.ext3这样操作。例如我想将上面格式化过的/dev/sda4用mkfs在格式化一遍,成为ext3文件系统。
[root@localhost ~]# mkfs -t ext3 /dev/sda6 =>输出信息很长,这里就不累赘了,大家自己试试。
[root@localhost ~]# mkfs.ext3 /dev/sda4 =>与上一条指令效果一致
默认情况下的块大小为4K,
mkfs使用起来非常方便,建议大家尽量使用mkfs而不是mke2fs。
dumpe2fs
用途:显示 ext2/ext3文件系统信息
用法:dumpe2fs [ -bfhixV ] [ -ob superblock ] [ -oB blocksize ] device

[root@server ~]# dumpe2fs /dev/sda1|less
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name: /1 注:卷标为/1
Last mounted on:
Filesystem UUID: 9c2a6086-3305-4709-a442-c27be9cb57d2
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 5124480
Block count: 5120718
Reserved block count: 256035
Free blocks: 2684471
Free inodes: 4946305
First block: 0
Block size: 4096 注:块大小为4096字节
Fragment size: 4096
Reserved GDT blocks: 1022
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 32640
Inode blocks per group: 1020
Filesystem created: Tue Aug 4 23:59:44 2009
Last mount time: Mon Sep 28 16:35:32 2009
Last write time: Mon Sep 28 16:35:32 2009
Mount count: 12
Maximum mount count: -1
Last checked: Tue Aug 4 23:59:44 2009
Check interval: 0 ()
……略……

挂载/卸载文件系统
现在只剩下最后一步了,将文件系统装载起来就可以使用了。这里我们用到mount指令。
Mount命令: 挂载文件系统
基本用法: mount 设备名 挂载点 [options]
常用参数:
-t: 指定文件系统
-o: 后面可接的参数有很多,下面列出常用的
Mount –o remount,ro /dev/sda6 /shuangxing =>以只读的方式重新挂载文件系统
Mount –o remount,rw /dev/sda6 /shuangxing =>以读写的方式重新挂载文件系统。
-o后还可以接如下参数:
ro, rw: 挂载文件系统成为只读(ro) 或可擦写(rw)
async, sync: 此文件系统是否使用同步写入 (sync) 或异步 (async) 的内存机制。
预设为 async。
auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)
dev, nodev: 是否允许此 partition 上,可建立设备文件? dev 为可允许
suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式?
exec, noexec: 是否允许此 partition 上拥有可执行 binary 文件?
user, nouser: 是否允许此 partition 让任何使用者执行 mount ?一般来说,
上面的这些参数一般不用自己添加的,采用系统默认的最好。下面我们看下Mount的具体应用。
前面新建的/dev/sda6分区,已经格式化并且检验了,现在我想将其挂载使用。
[root@server ~]# mkdir /shuangxing =>先建立一个挂载点,也可用系统已有的
[root@server ~]# mount /dev/sda6 /shuangxing =>直接挂载,很简单吧!
[root@server ~]# mount =>直接输入mount就可以查看整个系统挂载所有情况
/dev/sda2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda3 on /home type ext3 (rw)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
/home/lth/software/iso/rhel5u5.iso on /var/ftp/iso type iso9660 (rw,loop=/dev/loop0)
/dev/sda6 on /shuangxing type ext3 (rw) =>/dev/sda6已经以读写的方式挂载上了

还可以使用mount –a 将/etc/fstab中所有未挂载的分区挂载起来。
但是现在有人说我想将文件系统变为只读的,该怎么办呢?是不是要先将文件系统卸载,然后在挂载?不需要的,我们可以在不卸载文件系统的情况下将文件系统重新挂载并指定参数。使用上面提到的Mount –o remount,ro /dev/sda6 /shuangxing指令就能达到效果,大家自己动手试试。
到此为止一个完整的文件系统就创建完成了,大家都多动动手练习一下。下面再介绍一些相关的知识,刚刚我们使用mount挂载了一个分区,然后用mount指令就可以查看到整个系统的所有挂载情况,那么这些信息就是存储在/etc/mtab里面的,每mount一个分区,里面就会增加一条记录。

[root@server ~]# cat /etc/mtab =>查看一下文件
/dev/sda2 / ext3 rw 0 0
proc /proc proc rw 0 0
……中间省略
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
none /proc/fs/vmblock/mountPoint vmblock rw 0 0
/home/lth/software/iso/rhel5u5.iso /var/ftp/iso iso9660 rw,loop=/dev/loop0 0 0
/dev/sda6 /shuangxing ext3 rw 0 0
文件系统能够挂载上,自然也能卸载,这里介绍umount指令,umount指令使用很简单。
Umount命令:卸载文件系统
基本用法: umount 挂载点
常用参数: -a 卸载系统所有的文件系统,基本上没人会去用这个参数
我们看看具体情况。
[root@server ~]# umount /shuangxing/ =>卸载文件系统
[root@server ~]# mount
/dev/sda2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda3 on /home type ext3 (rw)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
/home/lth/software/iso/rhel5u5.iso on /var/ftp/iso type iso9660 (rw,loop=/dev/loop0)
文件系统已经被卸载了
或许有的同学就会问了,我现在是将文件系统挂载起来了,但是我下次开机它还在么?大家关机的时候仔细看下应该都会看到umounting…之类的。如果这样的话,那我每次开机都要重新Mount不是很麻烦?这里我们介绍一下另外一个文件/etc/fstab。
如果你想要新创建的文件系统能够做到开机自动,就可以将其加入到/etc/fstab文件
[root@server ~]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/home /home ext3 defaults 1 2
LABEL=/boot1 /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda5 swap swap defaults 0 0

您可能感兴趣的与本文相关的镜像

Langchain-Chatchat

Langchain-Chatchat

AI应用
Langchain

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

VirtualBox安装 Linux 虚拟机是一个相对简单的过程,只要按照一定的步骤操作即可完成。以下是详细的安装流程: ### 创建新的虚拟机 1. 打开 VirtualBox 应用程序。 2. 点击 “新建” 按钮来创建一个新的虚拟机实例。 3. 输入新虚拟机的名字(可以根据用途命名,比如 `UbuntuVM`),选择合适的类型和版本。对于大多数现代 Linux 发行版来说,“Linux” 和具体的子版本应该匹配你打算使用的 ISO 文件。 ### 配置虚拟硬件 4. 设置内存大小时要考虑宿主机系统的资源以及预期的工作负载需求。通常情况下至少分配 1GB RAM 给轻量级桌面环境或者更少用于服务器模式下的最小化安装。 5. 接下来决定硬盘存储选项,默认会有一个动态扩展的 VDI 映像文件被创建出来作为主驱动器;如果希望获得更好的性能表现,则可以选择固定尺寸或是链接到物理磁盘分区等方式[^3]。 ### 连接安装介质 6. 在左侧列表里选中新建立但尚未配置完毕的目标 VM ,点击顶部菜单栏中的 “设置” 图标进入其属性页。 7. 切换至 “存储” 标签卡下找到 IDE 控制器部分 —— 此处应当显示了一个名为 'Empty' 的 CD/DVD-ROM 设备条目。 8. 单击右侧对应的光盘图标并浏览本地文件系统定位之前下载好的 Linux ISO 影像包位置将其挂载起来[^3]。 ### 开始操作系统部署 9. 返回主界面双击目标 VM 或者按下工具栏上的绿色启动按钮开始引导过程。 10. 当提示符出现让你挑选动作的时候,请确认选择了诸如 "Install" 类似的选项而非试运行等功能以正式开启 OS 安装向导。 11. 后续依照屏幕指示逐步填写地区时间网络等相关参数直至基础框架构建完成为止[^2]。 ### 增强用户体验度调整 12. 待基本系统就绪之后还需要做一些额外工作才能让整个体验更加流畅自然: - 访问设备 -> 安装附加功能CD映像命令执行脚本从而启用共享剪贴板拖拽支持高分辨率自适应等等特性; - 重启机器使改动生效。 通过以上这些步骤可以顺利地在一个干净环境中建立起属于自己的 GNU/Linux 测试平台了! ```bash # 示例:更新APT缓存 & 升级已安装软件包 (适用于基于Debian系发行版) sudo apt update && sudo apt upgrade -y ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值