侧边栏壁纸
博主头像
liveJQ博主等级

沒有乐趣,何来开始

  • 累计撰写 163 篇文章
  • 累计创建 66 个标签
  • 累计收到 2 条评论

MikroTik RouterOS的安装方式

liveJQ
2022-05-28 / 0 评论 / 0 点赞 / 786 阅读 / 6,513 字

最常使用的架构

  • x86 [虚拟机、工控机等]
  • tile [CCR系列]
  • arm [CRS系列]

ESXI 通过 vmdk 安装

此安装方式只需要将 vmdk 文件导入到新建目录下,然后直接将此文件作为磁盘启动即可。唯一的缺点就是其默认存储空间非常小,通常在启动前需要先扩容下比较好。

厚置备延迟置零(zeroedthick,默认):立即分配空间,但只在首次写入时擦除数据。
厚置备置零(eagerzeroedthick):立即分配空间,立即擦除数据。
精简置备(thin):按需分配空间并擦除相应的数据,直至增长到所分配的最大容量。

vmkfstools -i chr-6.48.6.vmdk new-ros-livejq.vmdk

上面的命令等价于

vmkfstools -i chr-6.48.6.vmdk -d zeroedthick new-ros-livejq.vmdk

将源 vmdk 数据按照给定的磁盘格式克隆到目标文件上。

vmkfstools -X 10G new-ros-livejq.vmdk

最后将该目标文件容量增长到指定的大小。

执行过程

[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/new-ros-livejq] ls -l
total 35840
-rw-------    1 root     root      35848192 Jul 30 03:18 chr-6.48.6.vmdk
[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/new-ros-livejq] vmkfstools -i chr-6.48.6.vmdk new-ros-livejq.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk 'chr-6.48.6.vmdk'...
Clone: 100% done.
[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/new-ros-livejq] vmkfstools -X 10G new-ros-livejq.vmdk
Grow: 100% done.
[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/new-ros-livejq] ls -l
total 10521600
-rw-------    1 root     root      35848192 Jul 30 03:18 chr-6.48.6.vmdk
-rw-------    1 root     root     10737418240 Jul 30 03:21 new-ros-livejq-flat.vmdk
-rw-------    1 root     root           499 Jul 30 03:21 new-ros-livejq.vmdk
[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/new-ros-livejq] du -h ./*
35.0M	./chr-6.48.6.vmdk
10.0G	./new-ros-livejq-flat.vmdk
0	./new-ros-livejq.vmdk

将在用的 vmdk 系统扩容

!!! 注意:如果虚拟机数据非常重要,操作前请先备份。!!!

如果前面安装启动时并没有预先扩容,则往往会遇到 vmdk 形式的虚拟文件系统磁盘空间不够用的时候。此时会发现有两类文件,一个是普通的 vmdk,而另一个是同名但后面带有 flat 的 vmdk。后者其实是虚拟机实际存储数据的地方,文件通常比较大,而前者存储的是虚拟机元数据信息,它能链接到带 flat 的文件,所以我们操作这个 vmdk 就可以了。

扩容操作跟前面相同,只是需要先将 vmdk 转换成其它名字,然后通过克隆过程将虚拟机名称还原,作为转换的目标名称就可以了。扩容前最好先清除该虚拟机的快照。

执行过程

[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/ros-livejq] ls
chr-6.48.6-s001.vmdk          convert-ros-livejq-flat.vmdk  ros-livejq-flat.vmdk          ros-livejq.vmdk               ros-livejq.vmx                
chr-6.48.6.vmdk               convert-ros-livejq.vmdk       ros-livejq.nvram              ros-livejq.vmsd               ros-livejq.vmx.lck            
[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/ros-livejq] mv chr-6.48.6.vmdk chr-6.48.6.vmdk.bak
[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/ros-livejq] vmkfstools -i chr-6.48.6.vmdk.bak chr-6.48.6.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk 'chr-6.48.6.vmdk.bak'...
Clone: 100% done.
[root@localhost:/vmfs/volumes/6280e360-0b9d3028-4fda-f01fafd116e3/ros-livejq] vmkfstools -X 10G chr-6.48.6.vmdk 
Grow: 100% done.

克隆报错

有时候会出现克隆出错的情况。

/vmfs/volumes/5f2e92c2-92f5dd44-24d5-008cfa0e9d2c/ISO/ROS # vmkfstools -i chr-6.48.3.vmdk.bak chr-6.48.3.vmdk
DiskLib_Check() failed for source disk Failed to lock the file (16392)

这是因为在创建快照的过程中意外中断,需要整合虚拟机磁盘。

如果整合磁盘成功,但是还提示“需要整合虚拟机磁盘”,可以尝试一下步骤解决:

  1. 选择对应虚拟机,右键选择->快照->整合磁盘。(一般都可以解决,未成功执行下一条)
  2. 如果整合报错,提示文件锁定:
    新建快照,删除快照,再整合磁盘 (未成功执行下一条)
    新建快照,整合磁盘,再删除快照(未成功执行下一条)
    迁移虚拟机共享存储位置,整合磁盘,整合完成后再迁回来即可。

VPS通过DD命令安装RouterOS

这里以 CentOS 7 系统为例

需要注意,CHR最大硬盘空间为16G,所以即使安装位置磁盘分配空间超过16G,它也只能识别到16G。

[root@localhost ~]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a5035

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    62914559    30944256   8e  Linux LVM

Disk /dev/mapper/centos-root: 29.5 GB, 29490151424 bytes, 57597952 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
wget --no-check-certificate http://www.mikrotik-software.de/downloads/chr-6.48.2.img.zip -O chr.img.zip && gunzip -c chr.img.zip > chr.img
[root@localhost ~]# dd if=chr.img bs=1024 of=/dev/sda
65536+0 records in
65536+0 records out
67108864 bytes (67 MB) copied, 3.40657 s, 19.7 MB/s
[root@localhost ~]# reboot
Connection closing...Socket close.

Connection closed by foreign host.

试过,无法使用此方法安装 7.x 版本。

以上安装总结成一条命令(重启后需要通过VNC或IPMI等带外管理配置网络)

VMware虚拟化

yum install -y wget && wget --no-check-certificate http://www.mikrotik-software.de/downloads/chr-6.48.2.img.zip -O chr.img.zip && gunzip -c chr.img.zip > chr.img && dd if=chr.img bs=1024 of=/dev/sda

最后重启系统生效。

安装后无法加载系统

SeaBI0s (version 1.11.o-2.e17)
Machine UU1D 5b45ofa7-125f-4f83-abc1-4c3567deaec6

iPXE(http://ip×e.org)66:63.6 C986 PC12.16 PnP FMM+BFF94566+BFED4566 c986

iFXE(http://ipxe.org)oo:64.0 CA8o PC12.1o PnP FMM BFF9456o BFED456o CA8o

Booting from Hard Disk,
Loadiny system with initrd
Initramfs unpacking failcd: XZ-comprcsscd data is corrupt
Kernel panic- not syncing: No init found.Try passing init= option to kernel
Scc Linux Documentation/init.txt for guidance
Rebooting in 1 seconds.

这类错误多半是下载的镜像有问题,可以尝试换个下载地址或者降级系统版本亦或者换个系统,这里我通过降级版本安装成功了。

这里一样总结成一条命令(重启后需要通过VNC或IPMI等带外管理配置网络)

KVM虚拟化

yum install -y wget && wget http://www.mikrotik-software.de/downloads/chr-6.44.6.img.zip -O chr.img.zip && gunzip -c chr.img.zip > chr.img && dd if=chr.img bs=1024 of=/dev/vda

或者较新版本(跟上面二选一)

yum install -y wget && wget https://www.mikrotik-software.de/downloads/chr-6.49.1.img.zip -O chr.img.zip && gunzip -c chr.img.zip > chr.img && dd if=chr.img bs=1024 of=/dev/vda

注意:我这里刷入/dev/vda,你的不一定一样,可以通过fdisk -l查看。

最后重启系统生效。

网络预配置无需带外管理

需要注意的是,若主机没有带外管理,则需要预配置网络,否则重启后无法连接。

  1. 准备镜像
yum install -y wget && wget http://www.mikrotik-software.de/downloads/chr-6.44.6.img.zip -O chr.img.zip && gunzip -c chr.img.zip > chr.img

或者较新版本(跟上面二选一)

yum install -y wget && wget https://www.mikrotik-software.de/downloads/chr-6.49.1.img.zip -O chr.img.zip && gunzip -c chr.img.zip > chr.img
  1. 挂载镜像
mount -o loop,offset=512 chr.img /mnt

fdisk -l chr.img 可以查看分区起始位置,偏移量(offset)=起始位置(start)x 扇区大小(Sector size)

  1. 写入配置命令
echo "/ip address add address=你的IP地址带掩码 interface=ether1" >/mnt/rw/autorun.scr && echo "/ip route add gateway=网关" >>/mnt/rw/autorun.scr

这里需要注意网卡名,如果只有一张网卡可以直接填ether1,多张网卡就看你公网配第几张网卡上,第二张是ether2,以此类推。

  1. 卸载并刷入系统(注意你的系统盘路径)
umount /mnt && dd if=chr.img bs=1024 of=/dev/vda

最后重启生效。

PVE 通过 vmdk 安装

请跳转到本站另一篇 Proxmox VE 导入 vmdk 系统

PVE 安装 L5 开心版

现将 vmdk、mf、ovf 这三个文件上传到 local 存储的 ISO 目录下,然后打开 Shell 控制台。

cd /var/lib/vz/template/iso
qm importovf 101 MikroTik-RouterOS-L5.ovf local --format qcow2

local 可以改成其他有空闲的位置,例如:local-zfs等。

然后编辑虚拟机配置文件

nano /etc/pve/qemu-server/101.conf

ide0: local-zfs:vm-101-disk-0后面添加(无空格)

,model=VMware%20Virtual%20IDE%20Hard%20Drive,serial=00000000000000000001

完成后的样子

boot: order=ide0
cores: 2
ide0: local-zfs:vm-101-disk-0,model=VMware%20Virtual%20IDE%20Hard%20Drive,serial=00000000000000000001
memory: 1024
name: MikroTikRouterOSL5
smbios1: uuid=0b6874fb-3516-4b3b-ba4e-f17b0f04502e
vmgenid: 93dc3f90-3b1a-4046-85c6-6f6cdad97c88

最后再添加下网卡就可以启动了。

0

评论区