为了能快速的创建虚拟机,通过VM创建了一个2核CPU、4G内存、40G硬盘,安装Ubuntu Server 22.04.1的虚拟机,以便在需要的时候随时克隆一个新的虚拟机出来。
在新的虚拟机克隆出来后可能会调整硬件的配置,例如将40G硬盘扩展到50G,此时在Ubuntu中是不认的,需要通过重新分配挂载来利用多出来的10G空间。
网上的资料很多是挂载到某个目录下,而我想是直接扩容 / 。因此查了很多资料,也进行了很多尝试,综合网上的各种资料,实现了目标,在此记录过程,用于查阅。同时,本文记录了Ubuntu Server 22.04.1的初步配置过程。
操作系统 Ubuntu Server 22.04.1
初始虚拟机(2核CPU、4G内存、20G硬盘、Ubuntu Server 22.04.1)已经全部准备好,在安装Ubuntu时已经将源改为 https://mirrors.aliyun.com/ubuntu 。那么,我们从VM扩容开始。
一、VM克隆
右键要克隆的虚拟机,从管理->克隆 菜单进入。

欢迎界面点击“下一页”。

勾选”虚拟机中的当前状态“,点击”下一页“。此时的虚拟机应该在停机状态。

勾选”创建完整克隆“后点击”下一页“。

输入虚拟机的名称和路径后,点击”完成“,等待克隆结束即可。

二、更改虚拟机配置
在虚拟机没有启动的情况下,可以对虚拟机的配置进行修改。选中某虚拟机,点击”编辑虚拟机设置“进行修改。

主要调整处理器、内存和硬盘。调整范围需要在本机的配置范围之内。
配置好之后,启动虚拟机,进入后进行系统的相关配置。
三、开放root账号
由于目前不是用的root账号进行登录,因此,在操作命令前需要增加sodo 。
1、编辑sshd_config文件,输入命令:sudo vi /etc/ssh/sshd_config ,在输入密码后编辑配置文件。
改成 
保存退出。
2、重启sshd服务。输入命令:sudo systemctl restart sshd ,能正常重启即可。
3、设置root账号密码。
输入命令:sudo passwd root ,输入两次密码后即可。
可退出系统重新用root进行登录尝试。
注意:如果用root登录直接输入命令即可,否则,部分命令需要sudo 。
下面的操作均是通过root登录后进行,如果不更换root登录,请在命令前加 sudo 。
四、更改ssh登录端口
用root登录新的IP和端口。
1、编辑sshd_config文件,输入命令:vi /etc/ssh/sshd_config ,编辑配置文件。
放开注释,并改成需要的端口, 
保存退出。
2、重启sshd服务。输入命令:sudo systemctl restart sshd ,能正常重启即可。
可退出系统重新用root和新的端口进行登录尝试。
五、设置固定IP
1、编辑 00-installer-config.yaml 文件(寻找 /etc/netplan 目录下的 0开头的文件),输入命令: vi /etc/netplan/00-installer-config.yaml,编辑配置文件。
目前默认是开启DHCP的。如图:

按照下图进行调整:

保存退出。
2、使配置生效,输入命令:netplan apply 。IP更改完后需要重新登录新的IP。
六、开启UFW
用root登录新的IP。
1、确认UFW是否已经开启。输入命令:ufw status verbose 。如下图则没有开启。

2、开启UFW,输入命令:ufw enable 。如果出现中间的确认项,则输入:y 。

3、设置默认规则,输入命令:ufw default deny 。
4、确认UFW状态,输入命令:ufw status verbose 。如下图则开启成功。

5、配置当前需要的端口,例如ssh端口。输入命令:ufw allow 20022/tcp 。

6、使设置生效,输入命令:ufw reload 。

此时,重新登录时,没有在UFW开放的端口将无法访问。
七、更新源和更新apt、apt-get
1、更新源
修改 sources.list 文件。输入命令:vi /etc/apt/sources.list ,编辑源内容,下面为阿里源。
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://mirrors.aliyun.com/ubuntu jammy main restricted
# deb-src http://mirrors.aliyun.com/ubuntu jammy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://mirrors.aliyun.com/ubuntu jammy-updates main restricted
# deb-src http://mirrors.aliyun.com/ubuntu jammy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://mirrors.aliyun.com/ubuntu jammy universe
# deb-src http://mirrors.aliyun.com/ubuntu jammy universe
deb http://mirrors.aliyun.com/ubuntu jammy-updates universe
# deb-src http://mirrors.aliyun.com/ubuntu jammy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://mirrors.aliyun.com/ubuntu jammy multiverse
# deb-src http://mirrors.aliyun.com/ubuntu jammy multiverse
deb http://mirrors.aliyun.com/ubuntu jammy-updates multiverse
# deb-src http://mirrors.aliyun.com/ubuntu jammy-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://mirrors.aliyun.com/ubuntu jammy-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu jammy-security main restricted
# deb-src http://mirrors.aliyun.com/ubuntu jammy-security main restricted
deb http://mirrors.aliyun.com/ubuntu jammy-security universe
# deb-src http://mirrors.aliyun.com/ubuntu jammy-security universe
deb http://mirrors.aliyun.com/ubuntu jammy-security multiverse
# deb-src http://mirrors.aliyun.com/ubuntu jammy-security multiverse
2、更新apt
输入命令:apt update
输入命令:apt upgrade


3、更新apt-get
输入命令:apt-get update

输入命令:apt-get upgrade 
4、apt 和 apt-get 区别
apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。apt update 命令不仅更新存储库索引,还告知存储库中是否可用软件以及有多少新版本可用。
apt 可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt。
八、修改时区
1、设置时区为上海,输入命令:timedatectl set-timezone Asia/Shanghai 。
2、将当前时间写入BIOS避免重启之后失效,输入命令:hwclock --systohc 。
3、查看当前系统时间,输入命令:date -R 。
4、查看当前硬件时间,输入命令:hwclock --show 。

九、扩展磁盘到 /
物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
1、查看当前磁盘设备,输入命令:lsblk 。

/dev/sda 有60G,但实际使用只有18.2G。
2、通过 parted 进行 GPT 分区。
parted命令可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区,fdisk命令对于大于2T的分区无法划分,所以用fdisk无法看到parted划分的GPT格式的分区,一般用“fdisk -l” 查看GPT磁盘分区时,往往会出现“WARNING...”。
进入parted交互,输入命令:parted /dev/sda 。

查看parted帮助,输入命令:help 。

打印所有分区情况,输入命令:print all 。

选中要分区的磁盘,输入命令:select /dev/sda 。

打印 /dev/sda 分区的磁盘情况,输入命令:print 。

创建新的分区,输入命令:mkpart 。用ext4,从21.5GB一直分到最后,End? -1 表示分配到最后。

打印分配完成候的磁盘分区情况,输入命令:print 。

退出prated ,输入命令:quit 。

查看当前磁盘情况,可以看到 sda4 分配了 40G,输入命令:lsblk 。

对分区进行格式化,此处格式化 /dev/sda4 ,输入命令:mkfs.ext4 /dev/sda4 。

创建物理卷PV,输入命令:pvcreate /dev/sda4 。

查看PV情况,输入命令:pvscan 。

将PV加入卷组VG,首先查看VG情况,输入命令:vgdisplay 。

查看逻辑卷LV情况,输入命令:lvdisplay 。VG Name 为 ubuntu-vg 。

将物理卷 /dev/sda4 加入卷组 ubuntu-vg 中,输入命令: vgextend ubuntu-vg /dev/sda4 。

再次查看卷组情况,输入命令:vgdisplay 。发现VG Size 和 Free PE/Size 已经发生变化。

再次查看PV卷情况,输入命令:pvscan 。发现VG 值都为 ubuntu-vg 。

查看磁盘情况,输入命令:df -h 。发现 / 对应的是 /dev/mapper/ubuntu--vg-ubuntu--lv 。

对 /dev/mapper/ubuntu--vg-ubuntu--lv 进行扩容,分配所有Free的可用磁盘容量,输入命令:lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv 。

调整文件系统大小后,完成扩容。输入命令:resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 。

有时候在执行此命令时会出现 no such file or director 错误,等一会或重启ssh session甚至重启下虚拟机试试,也许就好了。
查看目前磁盘情况,输入命令:df -h 。发现 / 容量已经达到48G。

我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我尝试使用不同的ssh_options在同一阶段运行capistranov.3任务。我的production.rb说:set:stage,:productionset:user,'deploy'set:ssh_options,{user:'deploy'}通过此配置,capistrano与用户deploy连接,这对于其余的任务是正确的。但是我需要将它连接到服务器中配置良好的an_other_user以完成一项特定任务。然后我的食谱说:...taskswithoriginaluser...task:my_task_with_an_other_userdoset:user,'an_othe
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge
我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模