logo NodeSeekbeta

弃坑]自己本地定制一个DD镜像给某家的小内存vps用

仅作为笔记整理,不再跟进完善,数据无价注意备份
前面是使用方法,制作流程的视频截图和文字描述往下拉
只在128M测试通过,然而只给64swap装个htop照样爆内存,虚拟机64M会爆swap导致一堆预装服务起不来,不过理论上可以二次diy关掉一些用不到的模块,但是本贴已跑路,后面的区域就请自己探索了,跑都跑了,以下内容看看就好,别当真,现在能用的没准到你手里就出问题了,当图文小说看看就行


再次强调务必备份好重要资料,不管你用何种方式,得到镜像文件之后上传到另一台可以访问到的机器上
使用scp传输压缩好的系统到镜像站
打开后台光驱位选alpine,首选启动位调成CD
然后按左下角的确定,截图懒得截全了
回到面板后或者之前装了系统也可以VNC里reboot重启,视频里该过程从面板按下按钮1分37秒到3分05秒出现可操控界面耗时约88秒,输入该启动盘默认用户root后敲两下回车继续
开始配网,打完setup-inter之后直接tab补全就完事了
使用setup-interfaces配置网卡参数,划线部分的ip和网关从面板获取按照自己情况调整,没提到的直接回车默认就行,然后service networking restartecho nameserver 9.9.9.9 > /etc/resolv.conf或者选一个喜欢的DNS,有网之后我的习惯是apk add curl随便装个下载器,也可以换成别的反正我拦不了你
搞了这么长一段,再不放点图人都快跑完了
接下来curl 你放镜像的路径 | gzip -d | dd of=/dev/vda bs=4k等待1分30秒左右先别急,回到面板把光盘取出再reboot重启,视频中13分15按下回车,直到16分05出现login界面,开机速度170秒梦回xp时代了属于是
广告位招租啦本期视频就到这里,不要走开下节更精彩【这玩意就摆在这里跑不了,爱啥时候看随你
【图文无关】就是想提醒你一下该起身喝杯水了
系统装好了但是没网捏【响起鬼火摩托经过的音效】精彩节目马上继续
根据文档描述,目前OpenBSD的分区只能扩张不能缩小,如果有自己的想法可以不按文章的做法,但是推荐先虚拟机里实验可行再实操,输入reboot回车后数秒看见boot> 出现时快速输入bsd.rd进入维护模式,不过文章是后来写的,懒得抓timing也可以回面板把老板给的bsd光盘挂上之后再重启效果也一样
兜兜转转又回到安装盘啦
同样的,按下回车9分41,信息给完的时间是13分11,足足3分半
记错路径的一行被p掉了哦
打s进交互,然后输入咒语cd /dev && sh MAKEDEV sd0 && mount /dev/sd0a /mnt && cd /mnt/etc【我自己都看笑了,网卡是配好了但是网关少个叹号,写文案的时候已补齐,明明待会进系统才需要网,进了系统就有编辑器用了根本不需要手搓shell折磨自己
再接echo inet 10.3.2.x 255.0.0.0 > hostname.vio0 && echo "!route add default 10.3.1.1" >> hostname.vio0 && echo nameserver 9.9.9.9 > resolv.conf补齐网络信息
终端太小,这图基本没啥有用的信息
完事cd / && umount /mnt && disklabel -E sd0开始扩盘
图省事把盘占满了,后期可维护性直接归零
如图所示解锁系统分区的大小到盘尾,接着m指令修改分区大小完毕后按q保存【或者可以留一点,甚至是按照官方文档说的系统分区给足再把第二分区划给swap】
文档说其实没什么危险
扩盘完毕,fsck之后reboot重启
累了累了,歇歇
【来自写稿的:恢复网络的两个文件如果前面写好了,这次重启之后应该就有网了,即可以ping1.1.1.1和2600::这些外网地址,但是ssh默认没给开,必须要vi /etc/ssh/sshd_config把PermitRootLogin的no改成别的才可,另外这系统除了用包管理器装下载器外默认是ftp,不过不是linux的ftp,这玩意可以ftp -o foo http://example.com下载很多协议的文件= =
最终机器上hostname.vio0类似于

inet 10.3.2.x 255.0.0.0
!route add default 10.3.1.1

inet6 alias 2001:41d0:2:c53f::x 64
inet6 alias 2001:41d0:2:c53f::x 64
{...根据需要添加...}
!route add -inet6 default 2001:41d0:2:c53f::2

而/etc/resolv.conf的懂得都懂,下面拉一条长长的分割线,按照运行法则本应首先出现的制作流程


•☽────✧˖°˖☆˖°˖✧────☾••☽────✧˖°˖☆˖°˖✧────☾••☽────✧˖°˖☆˖°˖✧────☾••☽────✧˖°˖☆˖°˖✧────☾•


首次做盘需要准备的基础材料

  • 系统镜像install72.iso
  • 急救盘mfsbsd
  • 一台电脑(包括大约3G左右的空闲磁盘空间,内存1G但是没试过更小的,虚拟平台为virutalbox)
    往机器名称里填带有openbsd字样时会自动匹配一套原则上能用的硬件虚拟方案,不过实际录视频时仅首次启动能用,一旦手残需要返工重新录制就会fatal privileged instruction fault in supervisor mode
    老板给的镜像也会有这个报错,扶额
    解决方案为给机器分配大于一个的cpu核心,或者重启电脑,默认磁盘空间如无特殊需求可以只给1.9G,特别是到后面想跳过重新刻盘但是又要保证镜像能塞进商家的2G机器里的时候,首次启动前的其他优化项目
  1. 关掉声卡和USB这些目标平台上用不到的硬件
  2. 网卡换成最后一项virtnet统一网络界面名称,配置网络的部分也可以提前到这里完成,想嗯留到进VNC里再配的可以忽略
  3. 极大影响到安装速度的虚拟磁盘驱动,使用默认模板PIIX4时装系统过程磁盘读写仅1M/s还不如USB1.0,根据资料改成AHCI可以提升一两倍,写稿前试过用NVME甚至可以跑30M/s但是录制阶段频发掉盘的问题,效率最高的virtblk驱动貌似并未在vb里提供,总结理论上virtblk>nvme>AHCI(视频录制采用)>>PIIX4
    至少换成AHCI,安装时间可以从10分钟压到3分钟
    接下来进安装盘的步骤与已有资料相差无几,但是 密码 务必记好,同样的有资料表示后期可以把bootloader刷成grub2替代openbsd只能利用单核的bsd.rd,不过视频中还是额外安装了该维护内核
    敲下continue without verfication后面的yes时间点为3:54,安装结束时间到了7:39经过约3分半
    你以为装好了?并没有!
    此处敲完一些不关紧要的是否回答后会进行第一次内核重排,说实话后面会手动更新一次内核本来就要重新编译一次内核的,装完还恶心一下真没必要【理论上可以改安装盘bsd.rd里/install.sub取消这次行为,不过都弃坑了应该是不会再去研究了】该过程从8:21开始持续2分钟
    开始节约你的2分钟
    一切安装完毕,先别急,打s进shell先备份内核签名mv /mnt/var/db/kernel.SHA256 /mnt/var/db/kernel.SHA256.bak这里先不删因为待会更新系统要用到

    执行echo "SHA256 (/bsd) = NO" > /mnt/var/db/kernel.SHA256 && chroot /mnt /bin/ksh伪造一个签名临时禁用开机的内核重排开机的节省2分钟,之后exit回到光盘安装界面halt若干秒等到出现Press any key to reboot之后关闭机器开始下一步操作【这里忘记关掉内核重排也可以在下一次启动出boot> 的5秒内打bsd -s进单用户模式改】
    未卜先知了
    视频到这里打了个备份点,顺便进磁盘管理把 安装盘下掉 ,新加了一块 600M 的空盘准备后面缩小镜像,【如果是64的机器应该整大点,来自未来时空的文案作者表示目前系统本体砍掉自动重编译功能大概500M,按照商家的教程应该给200M的swap应该留700的dd盘】开机之后临时 关一下网 ,首次运行会有一次syspatch但是cdn.openbsd.org极慢
    网线给你拔喽
    录制到这里因为NG镜头断了好几次,不过开机时间应该是2分钟,如果这里忘记密码了就重启然后boot> bsd -s进单用户模式拿/bin/ksh跑passwd改吧,接下来修改源到https://mirror.bfsu.edu.cn/OpenBSD或者其他国内源,连官方也快的可以忽略,这里可以用vi了
    好巧,你也这么长?
    换完先还原内核签名mv /var/db/kernel.SHA256.bak /var/db/kernel.SHA256,然后敲syspatch更一下系统,耗时大约4分钟,感觉没必要的可以跳过这段
    硬盘占用直接少一半,绝了
    更完系统直接rm -r /usr/share/relink把两项虽说是这系统特色的安全功能直接去掉,立省一半空间,删完df -h一下检查检查当前占用,前面的光盘容量也是从这里估算的
    都vps了还哪来的安全
    最后把新签名备份一下继续换成空签名SHA256 (/bsd) = NO阻止重启编译内核然后rcctl disable library_aslr阻止动态库重联进一步加速启动【资料里其实有直接改文件的方法,直接echo library_aslr=NO >>/mnt/etc/rc.conf.local效果也一样,但是那篇博文的标签页因为浏览器崩溃找不到了】改完halt关机打备份【如果想要后续更新的话可以拿这版的镜像做母本了】
    害得是官方的脚本好用
    备份完往光驱塞一下openbsd的安装盘install72.iso,等启动完最好再次确认两块硬盘的设备号,这里是16G的sd0和600M的sd1,如果用了SSD的话也可能是nvd,重要的是不要弄混0和1【反正有备份,随便造也没啥
    一个0一个1应该问题不大
    然后按照流程把 新盘 格一下,600M盘默认的分区是全分配的不需要改了,然后到提示Let's install the sets!时直接ctrl+C并halt等关机,前几次试了用mfsbsd格出来的盘放回openbsd不认盘,有技术的可以直接跳过直接到急救盘那段
    爽完就跑真刺激
    【小彩蛋,理论上刷写mbr的步骤可以在这里完成的,但是官方脚本只允许在装好系统了的盘里写,暂时只能是后面刻盘结束又返回来单独刷mbr】
    这脚本真狗
    重启前往光驱位塞一张急救盘,以后做完母本也可拿以前的dd盘复制一个挂过来
    直接freebsd得了呗
    注意这个系统的启动日志跑的挺快,磁盘信息等login出来大概率已经刷没了,这里可以看到控制器上已经挂好的两块盘分别是16G的ada0和等待写盘的600M ada1
    居然300M/s的,真快
    读条完成后如果加了高级里的端口转发可以拿本地喜欢的ssh登了,默认密码mfsroot
    哪里字大选哪里
    如果没留意硬盘设备号的话可以dmesg找,或者gpart show看设备号,接下来mount /dev/ada1s4 /mnt && cd /mnt && dump -0a -f - | restore -rf -等待10分钟【设备模拟那里能上固态的话5分钟左右结束战斗
    怀念固态盘了
    完事halt关机准备下一步恢复引导记录并更新fstab,把 母盘释放 接下来的步骤用不到了,然后再次掏出install72安装盘插进光驱里,打s进交互之后老配方cd /dev && sh MAKEDEV sd0 && mount /dev/sd0c /mnt && disklabel sd0c
    让我看看
    没问题的话这里的duid已经和fstab里上一块盘的id不一样了,待会去更新,不过先把引导写好,再次强调母盘已经在上一步 释放 【不是删除,没准还有用的】,这里的sd0是准备拿去d的小盘,执行installboot -r /mnt sd0 && disklabel sd0 && cd /mnt/etc && cat fstab && echo 251f266bda19eaa2.a / ffs rw,wxallowed 1 1 > fstab && cat fstab
    反正也不是第一次手残了,开摆
    这里多次打印原始fstab为了对比格式,如图所示即使重装好多次也一样会有漏1的问题,磁盘编号不是固定的需要根据自己情况调整
    好累,不想写了
    到这里128的用户其实不用继续看了,直接把这块盘转成raw然后d上去就能用,不过视频进度条才一半还是再多bb一会,这里把安装盘移除然后重启,进到新系统之后配一下swap
    感觉来到了平行宇宙?
    执行cd / && dd if=/dev/zero of=/swap64 bs=1M count=64 && chmod 600 /swap64 && swapctl -a /swap64 && swapctl -l一番操作之后可以top一下看看有无问题,此时的swap重启就消失,需要开机执行的官方方案应该是单独分区/dev/sd0b,不过这里用偷懒的方案echo swapctl -a /swap64 >> /etc/rc.local,然后重启把虚拟机内存降到128之类的看看效果,顺带写盘结束后可以清一下var/log这些日志,懒得清的可以不清
    我知道应该不止这些
    以上操作完成就得到了一个“非常”小的镜像,来到虚拟机控制台把最新的硬盘复制一份出来执行"C:\Program Files\Oracle\VirtualBox\VBoxManage" clonemedium --format raw dd-disk.vdi final.img得到镜像,嫌大的话用gzip压一压之后传到下载站
    【后面的部分就是开头了,整体流程大概就这样,录像因为问题太多应该不久就删,如果有漏的纯属正常,反正是不会管了 xhj002
  • 这。。有点晕了 xhj024

  • 你字写得多,加个鸡腿

  • 你字多

  • xhj025 你鸡儿半天你DD包呢

  • 好贴,笔记内容详实,鼓励技术折腾,增加50鸡腿

  • @fbt1234 #4 说的也是,临时往两台机器传了昨天忘记删的镜像,不清楚内网能不能用,默认密码nodeseek,这玩意还是自己做比较有安全性 10.3.2.8/n.img.gz 10.1.1.55/n.img.gz 反正我测试能用
    https://pan.tiacode.cn/s/ABktg访问密码nodeseek.com

  • xhj025 @0-0 #6 内网地址糊弄鬼呢

  • @fbt1234 #7 有这家机器的话扫一下ipv6的邻居基本也能找到这两台,在找能临时传文件的……

  • 好帖子支持一下 xhj003

  • 厉害了,这个贴得多少鸡腿

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有14909位seeker

🎉欢迎新用户🎉