全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1319|回复: 13

OpenWrt内存救援系统仅20MB左右 加载到内存运行直接操作硬盘

[复制链接]
发表于 2022-12-6 14:37:53 | 显示全部楼层 |阅读模式
本帖最后由 KDE 于 2022-12-8 02:54 编辑

# 账号密码
----------------------------------------------------------------

root
mfslinux


# 访问方式
----------------------------------------------------------------

1 SSH
ssh 你的小鸡IP地址

2 sftp
sftp 你的小鸡IP地址

3 HTTP LUCI
http://你的小鸡IP地址


#1 BIOS引导方式
----------------------------------------------------------------


# 安装grub-imageboot
apt update
apt install -y grub-imageboot

# 创建文件夹
mkdir /boot/images

# 打开/boot/images
cd /boot/images

# 下载iso文件
wget https://raw.githubusercontent.com/AutoUpdateDaily/dd/main/mfslinux-0.1.10-f9c75a4.iso

#设置gurb默认从iso文件引导
sed -i 's/GRUB_DEFAULT=0/GRUB_DEFAULT=2/g' /etc/default/grub

# 更新grub
update-grub2

# 重启进入OpenWrt内存救援系统
reboot


#2 EFI不能引导ISO启动 只能DD EFI镜像到硬盘 从而从ISO文件引导启动 注意!!!原有硬盘数据会丢失!!!
----------------------------------------------------------------


# 重新挂载文件系统为只读
echo 1 > /proc/sys/kernel/sysrq
echo u > /proc/sysrq-trigger

# DD OpenWrt内存救援系统到硬盘(注意请把null替换成实际硬盘)
wget -O- https://raw.githubusercontent.com/AutoUpdateDaily/dd/main/mfslinux-0.1.10-f9c75a4.img.gz | zcat | dd of=/dev/null bs=1M status=progress

# 强制重启进入OpenWrt内存救援系统
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger


# 系统说明
----------------------------------------------------------------


# OpenWrt内存救援系统 基于OpenWrt 22.03.1制作

# 禁用了dnsmasq
/etc/init.d/dnsmasq disable
/etc/init.d/dnsmasq stop

# 安装了以下这些包
opkg update
opkg install coreutils-dd
opkg install curl
opkg install gzip
opkg install kmod-fs-xfs
opkg install lsblk
opkg install nano-full
opkg install openssh-sftp-server
opkg install parted

# mfslinux作者 不支持自动获取V6地址 有些包都没安装 还删了luci功能 所以自己根据作者的方法自己做了一个
mmatuska_mfslinux_ Minimalist in-memory diskless Linux distribution based on OpenWrt.mhtml
https://github.com/mmatuska/mfslinux


# 经验分享
----------------------------------------------------------------


# 查看硬盘分区
lsblk

# 查看文件系统(查看raw镜像分区文件系统 有些挂载成功但是无法读写的 请检查是否安装了相对于的文件系统)
opkg update
opkg install parted
parted -m <image> print | tail -n +3 | awk -F ":" '{print $(NF-2)}'

# 安装parted之后不重启重读分区表(DD之后分区变了 需要重读分区表才能挂载 请把null改成实际硬盘名称)
partprobe /dev/null

# 手动设置IPV4 & IPV6地址配置文件(默认自动获取V4V6地址 如不支持DHCP请手动设置IP地址 引导进OpenWrt救援系统之后在noVNC屏幕设置 下面是一个例子 请根据实际情况填写)
nano /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'lan'
        option device 'eth0'
        option proto 'static'
        option ipaddr '10.1.1.20/24'
        option gateway '10.1.1.1'
        list dns '1.1.1.1'
        list dns '1.0.0.1'
        list ip6addr '240e:11:7e47:9700:200:ff:fe00:20/64'
        option ip6gw 'fe80::11:eff:fe11:1b'
        list dns '2606:4700:4700::1111'
        list dns '2606:4700:4700::1001'


# 引导完了就可以DD你任何想DD得系统 系统要raw格式 不能是qcow2 可以是压缩后的raw格式(支持zip、gz等 zcat支持什么就支持什么)
----------------------------------------------------------------


# DD OpenWrt 22.03.1 raw镜像 gz格式
wget -O- https://downloads.openwrt.org/releases/22.03.1/targets/x86/64/openwrt-22.03.1-x86-64-generic-ext4-combined.img.gz | zcat | dd of=/dev/null bs=1M status=progress

# DD RouterOS 路由系统 raw镜像 zip格式
wget -O-  https://download.mikrotik.com/routeros/7.7beta9/chr-7.7beta9.img.zip | zcat | dd of=/dev/null bs=1M status=progress

# DD Debian 11 raw格式 无压缩 不需要“| zcat”
wget -O- https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-nocloud-amd64.raw | dd of=/dev/null bs=1M status=progress


# qcow2格式请下载到你小鸡转raw格式再DD 建议压缩为gz格式可以减少传输流量从而减少传输等待时间
----------------------------------------------------------------


# Ubuntu (实际是qcow2格式)
https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64-disk-kvm.img

# CentOS
https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20221129.1.x86_64.qcow2

# 甚至可以DD RHEL9 一样的方法 只不过需要开发者账号 才能1年试用 可以续杯 有这部分需求的人 比较少 我就略过了 想知道网友可以回帖一起交流
https://access.redhat.com/downloads/content/479/

# 注意
----------------------------------------------------------------


# DD了之后 还需要挂载修改root密码 设置ssh登录

# 挂载到/mnt目录
mount /dev/null /mnt

root@5328988529hax:~# openssl passwd -1 mfslinux
$1$xMswkWHb$p6j6kx.l2zl/mIutDHXpq0

# 修改root密码
nano /mnt/etc/shadow
root1$xMswkWHb$p6j6kx.l2zl/mIutDHXpq0::0:99999:7:::

# 修改ssh允许密码登录 登录之后运行passwd修改密码 加私钥并设置仅允许私钥登录
nano /mnt/etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes

# 有些系统还需要运行ssh-keygen -A添加密钥才能运行ssh 比如deb系 Ubuntu还需要写netplan才能启用网络

touch /mnt/etc/rc.local
chmod +x /mnt/etc/rc.local

cat <<EOF>> /mnt/etc/rc.local
ssh-keygen -A

cat <<EOF> /mnt/etc/netplan/99_config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: true
      match:
        macaddress: 00:00:00:00:02:35
      set-name: eth0
EOF

Network - Configuration _ Ubuntu.mhtml
https://ubuntu.com/server/docs/network-configuration

Canonical Netplan.mhtml
https://netplan.io/examples
发表于 2022-12-6 14:45:17 | 显示全部楼层
技术贴,先马克一下,感谢分享
发表于 2022-12-6 14:59:47 | 显示全部楼层
这个强,收藏
发表于 2022-12-6 16:16:54 来自手机 | 显示全部楼层
这样跟用大佬的脚本dd有啥区别?
发表于 2022-12-6 16:19:28 | 显示全部楼层
那么没有VNC的机器如何手动那个设置好IP
 楼主| 发表于 2022-12-6 17:15:55 来自手机 | 显示全部楼层
本帖最后由 KDE 于 2022-12-6 17:23 编辑
403_Forbidden 发表于 2022-12-6 16:19
那么没有VNC的机器如何手动那个设置好IP


那就把ip写入再引导 比如hax那个ipv6德鸡
 楼主| 发表于 2022-12-6 17:25:21 | 显示全部楼层
cici9911 发表于 2022-12-6 16:16
这样跟用大佬的脚本dd有啥区别?

大佬们写的DD脚本是组装机,直接DD官方镜像是品牌机。
发表于 2022-12-6 19:23:27 | 显示全部楼层
强烈支持技术帖。
发表于 2022-12-6 20:19:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-12-7 22:26:19 | 显示全部楼层
提几个意见
1.openwrt 能保留luci 可以直接用ip去访问 。
2. 可以使用TTYD终端 因为很多vnc 不能粘贴 必须手打 非常绝望 解决粘贴问题。
3.能否写个op功能挂载第三方存储挂载 方式可以用 webdav s3 sftp  ftp 等挂载方式 因为很多都是单盘,不知道备份哪里去
4.一键备份还原功能web图形界面化 可以选择已挂载的设备进行恢复或者备份
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-3-29 23:49 , Processed in 0.062802 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表