【顶】inst: 一键DD重装/恢复和应用商店(one keystoke/click netinstall/appstore)

1keydd是一套可在线一键安装构建系统的脚本和os最小核心,支持linux、windows、osx三平台和多目标。它支持一键dd和构建devdeskos,还能一键dd多种os。此外,介绍了其下载安装及用法,包括基本用法、高级用法、不同系统下用法和自托管方法。

inst是一套可在线一键安装os的脚本和应用商店,及一套完整的安装/重装框架和方案。

  • 作为在线安装脚本部分,基于增强的debianinstaller,inst.sh可将你的日用os变成可一键安装和dump的版本。
  • 作为安装应用安装和自定义app商店部分,基于嵌入的pve lxc环境, inst.sh可以为这些系统安装各种常见应用和隔离开发环境。

inst也是一整套完整的相关扩展方案:比如它还包含自建部分和用户扩展部分,etc …

项目地址:https://github.com/minlearn/inst

演示与特性✨

inst.sh支持linux/windows/osx三平台,支持多目标(remote mirror/gz/xz/qcow2/iso,localfile,docker oci,selfhosted app),支持双架构amd,arm双启动uefi,bios双网栈ipv4,ipv6,支持自建源,支持多种在线安装方式(nativedi,wgetdd,liveuntar,nc restore,inplace dd)及丰富的可调试信息,支持正常模式支持救援模式,双进度显示(vnc,web),支持自扩硬盘和智能嵌入静态ip参数(包括/32这样的特殊掩码支持),无最小内存限制,支持免d坏模式,可达成90%的linux成功率,80%的other os成功率,支持包括az,servarica,oracle/oracle arm,ksle,bwg10g512m,及接入无限丰富的机型和厂商。

在这里插入图片描述

inst支持一键dd其它多种os和为这些os(目前仅debian)注入多种应用,配合这些应用,可以将这些os做成路由器,做成programmable nas,,做成sidebar os, 做成青龙,做成allinone,做成btpanel,做成安卓群控,做成devops

inst支持扩展,支持定制接入无限增加的机型和系统,以及应用,应用和注入应用方法,具体见下面的用法说明:

更多演示和特性请看和项目文档库《https://inst.sh》

下载安装及用法📄

注:以下在linux云主机或本地虚拟机下的正常OS下的SSH或救援模式下的SSH完成

基本用法:

  • 简单前端交互恢复模式,进入后直接输入目标名,或输入-t显示可供选择的目标名(见下描述),即启动接下一步dd预处理过程,或在输入目标名前可以输入 -打头的其它选项名,定制预处理过程。最后输入目标启动预处理过程,如果目标名为app,会检查并安装epve然后直装该app。
wget -qO- inst.sh|bash
  • 快速恢复模式,指定安装目标os镜像或值(可附加注入app列表以逗号隔开):脚本运行后会重启进入dd过程,进入后,如有网络直接访问ip:80,会看到vnc进度,如果要进一步查看问题访问ip/log。目标os安装后,会自动扩展磁盘空间和调整网络。(安装演示:BV17B4y1b79Y , BV1JPhAzKENjBV1HSndezEaq ),如果目标名为app,会检查并安装epve然后直装该app。
wget -qO- inst.sh|bash -s - -选项名 选项值           -t 目标值

                       ┌─────────────────────────────────────────────────┐
   * 指定脚本源:            │ -m github/gitea/xxxx │ -t debian/debianxx:ustc  │ * debianxx为通过源安装的10-12,不替换xx为11,都可带:ustc源    
   * 指定网卡名:            │ -i enp0s1...         │    gz/xz/qcow2/iso       │ * gz/xz/qcow2是各硬盘镜像链接iso光盘(仅linux live)     
   * 指定静态网:            │ -n ip/cidr,gateway   │    dummy                 │ * dummy是空目标仅供调试模式用   
   * 指定硬盘名:            │ -p sda...            │    ./xxx.gz              │ * ./xxx.gz是本地dd文件名    
   * 指定网络栈:            │ -6 1                 │    10000:/dev/sda        │ * 10000:/dev/sda是nc打包导出地址       
   * 指定调试中:            │ -d ...:...           │    appname ...           │ * appname是要直接安装的app名     
       注入穿透件:          │    22:ratholesrvip   │    docker ...            │ * docker是oci容器,如redriod     
       改进度端口:          │    vnc:8000          │    devdesk               │ * embeded pve with lxc         
   * 指定完成后:            │ -o ...:...           │    devdesklv/ct/de       │ * pvelive/pveovz/pveqemu(dreprecated)    
       指定一密码:          │    pass:xx           │                          │ 
       需扩展磁盘:          │    1:doexpanddisk    │                          │
       不注入网络:          │    2:noinjectnetcfg  │                          │
       保持不重启:          │    3:noreboot        │                          │
       不预先清除:          │    4:nopreclean      │                          │ 
       注入穿透件:          │    3389:ratholesrvip │                          │ 
   * 自定完成串:            │ -o 'str-in-a-line..' │                          │
                       └─────────────────────────────────────────────────┘                                             
                            * 以上都可选(-o可多组合)   * -t必须指定,且值唯一

恢复完成后的系统,一般linux用户名为root密码为inst.sh,iso包安装的桌面linux会多增加一个用户名为user密码为inst.sh的用户,windows保留原包密码。(注意不指定为inst.sh,注意,指定时密码小于6位或8位可能不符合某些os要求会导致失败)

这里收集了一些第三方dd镜像速查(不做说明的情况下, inst.sh不托管第三方gz镜像):

系统作者解压平台启动登录密码直链(右键复制)
centos8 streamwikihost2-4Gamd64BIOSinst.shcentos8-stream.qcow2
centos9 streamwikihost2-4Gamd64BIOSinst.shcentos9-stream.qcow2
debian11wikihost2-4Gamd64BIOSinst.shdebian11.qcow2
debian12wikihost2-4Gamd64BIOSinst.shdebian12.qcow2
debian12 livedebian2-4Gamd64BIOS+UEFIinst.shdebian-live-12-gnome.iso
ubuntu24 liveubuntu4-6Gamd64BIOS+UEFIinst.shubuntu-24.04-desktop.iso
win10teddysun16.0GBamd64BIOSTeddysun.comzh-cn_windows10_ltsc.xz
win10teddysun16.0GBamd64UEFITeddysun.comzh-cn_win10_ltsc_uefi.xz
win11teddysun16.0GBamd64BIOSTeddysun.comzh-cn_windows11_22h2.xz
win11teddysun16.0GBamd64UEFITeddysun.comzh-cn_windows11_22h2_uefi.xz
win11bin45678910.0GBarm64UEFI123@@@en-us_windows11_ltsc_arm64.xz
winserver 2019teddysun16.0GBamd64BIOSTeddysun.comcn_win2019.xz
winserver 2019teddysun16.0GBamd64UEFITeddysun.comcn_win2019_uefi.xz
winserver 2022teddysun16.0GBamd64BIOSTeddysun.comzh-cn_win2022.xz
winserver 2022teddysun16.0GBamd64UEFITeddysun.comzh-cn_win2022_uefi.xz

这里收集了一些linux app速查:

基础类开发类云应用工具类os类其它
mysql57giteanextcloudchromedebiande
mongodbcode-serverdiscusscloudflaredredroid
postgresqlwordpressosxkvm
redis
mariadb

更多第三方dd镜像仓库和应用仓库《https://inst.sh》

其它用法:

  • 本地模式,将inst仓库下载并解压到vps,将镜像文件放在inst目录下,下例将debian11.gz作为本地镜像恢复安装到本地(安装演示:localinstall
    bash inst.sh -t ./debian11.gz

  • 打包模式,一键打包硬盘(也可仅打包一个分区),可供恢复模式用,此模式下不破坏硬盘原系统仅实现打包服务,下例将vps上的/dev/sda透露为该vps 10000端口托管的http .gz包(安装演示:nc
    wget -qO- inst.sh|bash -s - -t 10000:/dev/sda

  • nat模式,将内网ip的系统转化成公网可访问的系统, 下例3389为将本地windows rdp端口转发到10.211.55.4所在的配置对应口(安装演示:natproxy
    wget -qO- inst.sh|bash -s - -o 3389:10.211.55.4 -t yourwindowsgz

  • cmdslip模式,将’'包裹的一条命令字串注入到安装好的debian, 下例–cmd为安装好的debian启动后安装默认桌面(安装演示:cmdslip
    wget -qO- inst.sh|bash -s - --cmd 'tasksel install desktop' -t debian

  • 开启自带DEBUG模式,此模式dd时打开一个network-console,且如无网络5分钟后会重启,并进入DD前的正常系统。免破坏系统。可免写target进入dummy Dryrun救援,也可附在其它target后dd出问题时进入ssh调试,甚至开启nat支持(参照上面nat模式解释)
    wget -qO- inst.sh|bash -s - -d(-d 22:10.211.55.4)

  • 第三方救援模式,检测是rescue环境后原地dd,无须准备( rescue )
    wget -qO- inst.sh|bash -s - (-i xxx -p xxx) -t yourwindowsgz

DEBUG模式下以用户名为sshd密码为空登录ssh

windows/osx下用法(实验):

自托管inst:

  • fork本仓库,然后修改你fork到仓库的inst.sh头部变量定义区的automirror0,automirror1中的minlearn为你的用户名,用 “https://github.com/你的github用户名/inst/raw/master/inst.sh” 脚本地址调用脚本
  • 按_build/inst已有samples,编写自己的安装逻辑并调用。
  • 参照_build/appp每个app的目录结构,自己增加app脚本和逻辑

此项目关联 https://github.com/minlearn/ 下所有项目,主体为 https://github.com/minlearn/minlearnprogramming/ 和 https://github.com/minlearn/1kdd ,这是一套为配合我在《minlearnprogramming》最小编程/统一开发的想法的综合项目。
本项目长期保存

<think>嗯,我需要思考一下用户的问题之前的内容。用户遇到了ksh无法执行/usr/lib/instl/sm_inst的问题,已经分享了一些解决方案步骤。现在用户提供了几个Oracle相关的引用片段,但这些似乎与核心问题关联不大。不过,用户特别提到想解决“kshsm_instcannotexecutecannotopen”错误,所以应该专注于之前的诊断路径。用户提到“cannotopen”可能表示文件访问问题。回顾之前的方案,第一步是检查文件存在性权限。用户可能在执行root.sh或Oracle安装脚本时遇到这个问题,因为引用中提到了root.sh脚本[^5]。用户分享的引用中有环境变量设置示例[^4],这提示可能PATH或库路径问题。需要强调检查$ORACLE_HOME$LD_LIBRARY_PATH,因为Oracle脚本常依赖这些。引用[2]提到删除配置的命令可能相关,因为crs服务问题可能导致执行失败。如果sm_inst是GridInfrastructure的一部分,集群状态可能影响其执行。用户提到CRS-4639错误[^2],建议先检查crsctl状态再重试。用户提供的utlrp.sql[^1]csh配置[^3]似乎不直接相关,但安全起见,可以提及其他可能的环境问题,如shell初始化文件冲突。深层需求可能是用户在安装或维护OracleRAC时遇到此错误,尤其在运行root.sh期间。需要结合Oracle环境特性来完善方案,比如使用oracle用户执行、检查Inventory.xml等。综上,用户希望具体解决在Oracle环境中ksh执行失败的问题,可能需要补充:-检查文件是否被Oracle进程占用-确认使用正确用户(如root执行root.sh[^5])-处理可能的库依赖(如通过ldd分析)</think> 基于您提供的错误信息Oracle环境特点,以下是针对"ksh无法执行/usr/lib/instl/sm_inst"的完整解决方案: ### 1. 验证Oracle环境配置(关键步骤) ```bash # 检查关键环境变量(需以oracle用户执行) echo $ORACLE_HOME # 应返回/u01/app/11.2.0/grid echo $LD_LIBRARY_PATH # 必须包含$ORACLE_HOME/lib echo $PATH # 需包含$ORACLE_HOME/bin # 检查文件权限(需root用户) ls -l /usr/lib/instl/sm_inst ``` - ✅ 正常权限:`-rwxr-xr-x. 1 grid oinstall ...` - ❌ 异常处理: ```bash chown grid:oinstall /usr/lib/instl/sm_inst # 修正属主 chmod 755 /usr/lib/instl/sm_inst # 添加执行权限 ``` ### 2. 诊断脚本依赖问题 ```bash # 检查脚本解释器 head -n1 /usr/lib/instl/sm_inst # 应有#!/bin/ksh或#!/bin/sh # 检测库依赖 ldd /usr/lib/instl/sm_inst | grep "not found" ``` - 若显示缺失库,需添加路径(参考[^4]): ```bash export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ``` ### 3. 处理Oracle集群特殊问题 ```bash # 检查集群服务状态(需root) crsctl check has # 若返回CRS-4639[^2]则需重启: $ORACLE_HOME/bin/crsctl stop has $ORACLE_HOME/bin/crsctl start has # 修复无效对象(可选但推荐) sqlplus / as sysdba <<EOF @?/rdbms/admin/utlrp.sql # [^1] EOF ``` ### 4. 环境变量冲突排查 在`.bash_profile`添加[^4]: ```bash umask 022 export ORACLE_SID=+ASM1 # 根据节点调整 export ORACLE_HOME=/u01/app/11.2.0/grid export PATH=$ORACLE_HOME/bin:$PATH ``` 执行生效: ```bash source ~/.bash_profile # oracle用户 su - oracle # root用户切换验证 ``` ### 5. 文件系统级检查 ```bash # 检查inode空间(关键分区) df -i /usr # inode使用率<90% df -h /usr # 空间使用率<80% # 文件完整性校验 sum /usr/lib/instl/sm_inst > /tmp/checksum diff /tmp/checksum <(sum /dev/shm/backup_sm_inst) # 不一致则需重安装 ``` ### 最终验证 ```bash ksh -x /usr/lib/instl/sm_inst # 启用调试模式 ``` 📌 **典型错误模式**: 1. 权限问题:`/usr/bin/ksh: 0403-006 Execute permission denied` 2. 路径错误:`LIBPATH cannot find libclntsh.so` 3. 集群异常:`CRS resource is not running` 💡 **推荐操作顺序**: ```mermaid graph TD A[检查文件权限] --> B[验证环境变量] B --> C[测试库依赖] C --> D[检查集群状态] D --> E[重配置PATH] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值