• 解决自动安装Freebsd系统盘符无法确定问题


    最近因为需要用到Freebsd,所以研究了打包的一些方法,这个没什么太大问题,通过网上的一些资料可以解决,但是由于确实不太熟悉这套系统,还是碰上了一些比较麻烦的地方,目前也没看到有人写如何处理,那就自己总结一下,以免以后再用忘记如何处理

    问题来源

    在linux下的iso自动安装的时候,在无法确定盘符的情况下,可以不写盘符,从而在遇到任何奇怪的磁盘的时候也是能安装的,比如 sda,xvda,vda,这些都可以通过不精确盘符的方式解决

    而在freebsd当中处理就不一样了

    cat ./etc/installerconfig
    PARTITIONS="da0 { 512K freebsd-boot, auto freebsd-ufs / }"
    DISTRIBUTIONS="custom_kernel.txz base.txz lib32.txz custom_files.txz"
    #!/bin/sh
    ···
    

    这个地方写配置文件的第一句就要告诉安装环境需要安装到哪里,这个地方是写死的一个数据,而碰上ada为系统盘就没法解决了,得不断的适配这个盘符

    解决问题

    最开始的时候写 etc/installerconfig这个配置文件我也不知道为什么要写这里就可以,根据网上的资料是写这个就可以了,在查阅更多的资料后,可以发现是在光盘的etc/rc.local里面会去调用这个脚本,然后去安装

    最开始的思路是直接修改这个脚本,后来发现在安装过程中,这个文件实际是只读的,无法去修改的,所以这个地方需要做一个折中的修改

    先准备好etc/installerconfig,写死几个值

    PARTITIONS="da0 { 512K freebsd-boot, auto freebsd-ufs / }"
    ···
    #changge fstab to gpt id
    systemuuid=`gpart list | grep -A 11 'da0p2' | grep 'rawuuid' | awk '{print $2}'`
    sed -i -e "s/da0p2/gptid/$systemuuid/g" /etc/fstab
    

    下面的那个部分是解决盘符变动,在安装过程中就处理好盘符的uuid挂载,这个在linux下面,是操作系统默认就处理好了,这个地方写定一个da0,等下后面处理的时候可以去匹配这个da0

    处理默认的./etc/rc.local

    export TERM
    
    cp /etc/installerconfig /tmp/installerconfig
    sh -c '. /usr/share/bsdconfig/device.subr;f_device_menu "" "" "" DISK'
    echo -n  "Which disk your what install :"
    read mydisk
    echo "$mydisk"
    sed -i -e "s/da0/$mydisk/g" /tmp/installerconfig
    
    
    if [ -f /tmp/installerconfig ]; then
            if bsdinstall script /tmp/installerconfig; then
                    dialog --backtitle "FreeBSD Installer" --title "Complete" --no-cancel --ok-label "Reboot" --pause "Inst
    allation of FreeBSD complete! Rebooting in 10 seconds" 10 30 10
                    reboot
    

    处理思路就是先拷贝到一个临时的环境下面,然后去修改它,利用系统接口去获取可以安装的磁盘,这个地方只是起一个告诉有哪些盘可以安装的作用,然后根据提示输入想安装的磁盘的盘符名称,这个地方是什么名称就输入什么名称就可以安装了,然后系统就会根据改好的脚本去安装操作系统了

    总结

    这是一个遗留问题,之前一直没解决,造成了越来越多的问题,在花了一个晚上的时间后,终于能够解决了,对系统越熟悉越能够知道怎么去处理问题,未知的东西太多,只能一点点花时间解决

    变更记录

    Why Who When
    创建 武汉-运维-磨渣 2016-07-19
  • 相关阅读:
    安装Django、Nginx和uWSGI
    创建Orcale数据库链接访问外部数据库
    ER图,以及转化成关系模式
    eclipse中的Java项目导出成为一个可以直接双击运行的jar文件
    电脑添加新的字体
    JDBC 的编程步骤
    转转基础服务性能压测实战
    公司起诉CTO拖延研发进度,索赔90万
    详解MQ消息队列及四大主流MQ的优缺点
    晒一波程序员的杯子,逼格超级高
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575359.html
Copyright © 2020-2023  润新知