找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 364|回复: 3

[armbian] armbian从u盘安装到emmc的问题(可有偿)

[复制链接]
本帖最后由 2668171712 于 2023-12-2 21:46 编辑

机顶盒型号是h96 max x3  s905x3
emmc标识:/dev/mmcblk2
想把u盘里的armbian安装到emmc上,运行armbian系统自带的install-aml.sh文件之后,开机黑屏,路由器也没有查到机顶盒的ip地址。
想把armbian安装到emmc上只能用u盘的armbian系统运行1.sh文件,然后关机(一定要关机),重新运行u盘的armbian系统运行2.sh文件才能安装到emmc上,
这样把armbian安装到emmc上好麻烦
不知道大神们有没有其他方法能执行一次就能安装到emmc上的方法,
或者帮我把1.sh和2.sh文件给整合成能执行一次就能安装到emmc上的文件
(可有偿)



以下是1.sh文件代码
  1. #!/bin/sh

  2. echo "Start script create MBR and filesystem"

  3. hasdrives=$(lsblk | grep -oE '(mmcblk[0-9])' | sort | uniq)
  4. if [ "$hasdrives" = "" ]
  5. then
  6.         echo "UNABLE TO FIND ANY EMMC OR SD DRIVES ON THIS SYSTEM!!! "
  7.         exit 1
  8. fi
  9. avail=$(lsblk | grep -oE '(mmcblk[0-9]|sda[0-9])' | sort | uniq)
  10. if [ "$avail" = "" ]
  11. then
  12.         echo "UNABLE TO FIND ANY DRIVES ON THIS SYSTEM!!!"
  13.         exit 1
  14. fi
  15. runfrom=$(lsblk | grep /$ | grep -oE '(mmcblk[0-9]|sda[0-9])')
  16. if [ "$runfrom" = "" ]
  17. then
  18.         echo " UNABLE TO FIND ROOT OF THE RUNNING SYSTEM!!! "
  19.         exit 1
  20. fi
  21. emmc=$(echo $avail | sed "s/$runfrom//" | sed "s/sd[a-z][0-9]//g" | sed "s/ //g")
  22. if [ "$emmc" = "" ]
  23. then
  24.         echo " UNABLE TO FIND YOUR EMMC DRIVE OR YOU ALREADY RUN FROM EMMC!!!"
  25.         exit 1
  26. fi
  27. if [ "$runfrom" = "$avail" ]
  28. then
  29.         echo " YOU ARE RUNNING ALREADY FROM EMMC!!! "
  30.         exit 1
  31. fi
  32. if [ $runfrom = $emmc ]
  33. then
  34.         echo " YOU ARE RUNNING ALREADY FROM EMMC!!! "
  35.         exit 1
  36. fi
  37. if [ "$(echo $emmc | grep mmcblk)" = "" ]
  38. then
  39.         echo " YOU DO NOT APPEAR TO HAVE AN EMMC DRIVE!!! "
  40.         exit 1
  41. fi

  42. DEV_EMMC="/dev/$emmc"

  43. echo $DEV_EMMC

  44. echo "Start backup u-boot default"

  45. dd if="${DEV_EMMC}" of=/root/u-boot-default-aml.img bs=1M count=4

  46. echo "Start create MBR and partittion"

  47. parted -s "${DEV_EMMC}" mklabel msdos
  48. parted -s "${DEV_EMMC}" mkpart primary fat32 700M 956M
  49. parted -s "${DEV_EMMC}" mkpart primary ext4 957M 100%

  50. echo "Start restore u-boot"

  51. dd if=/root/u-boot-default-aml.img of="${DEV_EMMC}" conv=fsync bs=1 count=442
  52. dd if=/root/u-boot-default-aml.img of="${DEV_EMMC}" conv=fsync bs=512 skip=1 seek=1

  53. sync

  54. echo "Done"

  55. echo "Start copy system for eMMC."

  56. mkdir -p /ddbr
  57. chmod 777 /ddbr

  58. PART_BOOT="${DEV_EMMC}p1"
  59. PART_ROOT="${DEV_EMMC}p2"
  60. DIR_INSTALL="/ddbr/install"

  61. if [ -d $DIR_INSTALL ] ; then
  62.     rm -rf $DIR_INSTALL
  63. fi
  64. mkdir -p $DIR_INSTALL

  65. if grep -q $PART_BOOT /proc/mounts ; then
  66.     echo "Unmounting BOOT partiton."
  67.     umount -f $PART_BOOT
  68. fi
  69. echo -n "Formatting BOOT partition..."
  70. mkfs.vfat -n "BOOT_EMMC" $PART_BOOT
  71. echo "done."

  72. mount -o rw $PART_BOOT $DIR_INSTALL

  73. echo -n "Cppying BOOT..."
  74. cp -r /boot/* $DIR_INSTALL && sync
  75. echo "done."

  76. echo -n "Edit init config..."
  77. sed -e "s/ROOTFS/ROOT_EMMC/g" \
  78. -i "$DIR_INSTALL/uEnv.txt"
  79. echo "done."

  80. rm $DIR_INSTALL/s9*
  81. rm $DIR_INSTALL/aml*
  82. rm $DIR_INSTALL/boot.ini
  83. mv -f $DIR_INSTALL/boot-emmc.scr $DIR_INSTALL/boot.scr

  84. if [ -f /boot/u-boot.ext ] ; then
  85.     mv -f $DIR_INSTALL/u-boot.sd $DIR_INSTALL/u-boot.emmc
  86.     mv -f $DIR_INSTALL/boot-emmc.ini $DIR_INSTALL/boot.ini
  87.     sync
  88. fi

  89. umount $DIR_INSTALL

  90. if grep -q $PART_ROOT /proc/mounts ; then
  91.     echo "Unmounting ROOT partiton."
  92.     umount -f $PART_ROOT
  93. fi

  94. echo "Formatting ROOT partition..."
  95. mke2fs -F -q -t ext4 -L ROOT_EMMC -m 0 $PART_ROOT
  96. e2fsck -n $PART_ROOT
  97. echo "done."

  98. echo "Copying ROOTFS."

  99. mount -o rw $PART_ROOT $DIR_INSTALL

  100. cd /
  101. echo "Copy BIN"
  102. tar -cf - bin | (cd $DIR_INSTALL; tar -xpf -)
  103. #echo "Copy BOOT"
  104. #mkdir -p $DIR_INSTALL/boot
  105. #tar -cf - boot | (cd $DIR_INSTALL; tar -xpf -)
  106. echo "Create DEV"
  107. mkdir -p $DIR_INSTALL/dev
  108. #tar -cf - dev | (cd $DIR_INSTALL; tar -xpf -)
  109. echo "Copy ETC"
  110. tar -cf - etc | (cd $DIR_INSTALL; tar -xpf -)
  111. echo "Copy HOME"
  112. tar -cf - home | (cd $DIR_INSTALL; tar -xpf -)
  113. echo "Copy LIB"
  114. tar -cf - lib | (cd $DIR_INSTALL; tar -xpf -)
  115. echo "Create MEDIA"
  116. mkdir -p $DIR_INSTALL/media
  117. #tar -cf - media | (cd $DIR_INSTALL; tar -xpf -)
  118. echo "Create MNT"
  119. mkdir -p $DIR_INSTALL/mnt
  120. #tar -cf - mnt | (cd $DIR_INSTALL; tar -xpf -)
  121. echo "Copy OPT"
  122. tar -cf - opt | (cd $DIR_INSTALL; tar -xpf -)
  123. echo "Copy patch"
  124. tar -cf - patch | (cd $DIR_INSTALL; tar -xpf -)
  125. echo "Create PROC"
  126. mkdir -p $DIR_INSTALL/proc
  127. echo "Copy ROOT"
  128. tar -cf - root | (cd $DIR_INSTALL; tar -xpf -)
  129. echo "Create RUN"
  130. mkdir -p $DIR_INSTALL/run
  131. echo "Copy SBIN"
  132. tar -cf - sbin | (cd $DIR_INSTALL; tar -xpf -)
  133. echo "Copy SELINUX"
  134. tar -cf - selinux | (cd $DIR_INSTALL; tar -xpf -)
  135. echo "Copy SRV"
  136. tar -cf - srv | (cd $DIR_INSTALL; tar -xpf -)
  137. echo "Create SYS"
  138. mkdir -p $DIR_INSTALL/sys
  139. echo "Create TMP"
  140. mkdir -p $DIR_INSTALL/tmp
  141. echo "Copy USR"
  142. tar -cf - usr | (cd $DIR_INSTALL; tar -xpf -)
  143. echo "Copy VAR"
  144. tar -cf - var | (cd $DIR_INSTALL; tar -xpf -)
  145. echo "Copy www"
  146. tar -cf - www | (cd $DIR_INSTALL; tar -xpf -)
  147. sync

  148. echo "Copy fstab"

  149. rm $DIR_INSTALL/etc/fstab
  150. cp -a /root/fstab $DIR_INSTALL/etc/fstab

  151. rm $DIR_INSTALL/root/install*.sh
  152. rm $DIR_INSTALL/root/fstab
  153. rm $DIR_INSTALL/usr/bin/ddbr


  154. cd /
  155. sync

  156. umount $DIR_INSTALL

  157. echo "*******************************************"
  158. echo "Complete copy OS to eMMC "
  159. echo "*******************************************"
复制代码


以下是1.sh文件运行结果

  1. Start script create MBR and filesystem
  2. /dev/mmcblk2
  3. Start backup u-boot default
  4. 4+0 records in
  5. 4+0 records out
  6. 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.146235 s, 28.7 MB/s
  7. Start create MBR and partittion
  8. Start restore u-boot
  9. 442+0 records in
  10. 442+0 records out
  11. 442 bytes copied, 0.00349458 s, 126 kB/s
  12. 8191+0 records in
  13. 8191+0 records out
  14. 4193792 bytes (4.2 MB, 4.0 MiB) copied, 0.236705 s, 17.7 MB/s
  15. Done
  16. Start copy system for eMMC.
  17. Formatting BOOT partition...mkfs.fat 4.1 (2017-01-24)
  18. done.
  19. Cppying BOOT...done.
  20. Edit init config...done.
  21. Formatting ROOT partition...
  22. /dev/mmcblk2p2 contains a ext4 file system labelled 'ROOT_EMMC'
  23.         last mounted on /ddbr/install on Sat Dec  2 11:43:15 2023
  24. e2fsck 1.44.1 (24-Mar-2018)
  25. ROOT_EMMC: clean, 11/3760128 files, 314897/15034112 blocks
  26. done.
  27. Copying ROOTFS.
  28. Copy BIN
  29. Create DEV
  30. Copy ETC
  31. Copy HOME
  32. Copy LIB
  33. Create MEDIA
  34. Create MNT
  35. Copy OPT
  36. Copy patch
  37. Create PROC
  38. Copy ROOT
  39. Create RUN
  40. Copy SBIN
  41. Copy SELINUX
  42. Copy SRV
  43. Create SYS
  44. Create TMP
  45. Copy USR
  46. Copy VAR
  47. Copy www
  48. Copy fstab
  49. *******************************************
  50. Complete copy OS to eMMC
  51. *******************************************
复制代码





以下是2.sh文件代码
  1. #!/bin/sh

  2. echo "Start script create MBR and filesystem"

  3. DEV_EMMC=/dev/mmcblk1

  4. echo "Start backup u-boot default"

  5. dd if="${DEV_EMMC}" of=/boot/u-boot-default.img bs=1M count=4

  6. echo "Start create MBR and partittion"

  7. parted -s "${DEV_EMMC}" mklabel msdos
  8. parted -s "${DEV_EMMC}" mkpart primary fat32 700M 828M
  9. parted -s "${DEV_EMMC}" mkpart primary ext4 829M 100%

  10. echo "Start restore u-boot"

  11. dd if=/boot/u-boot-default.img of="${DEV_EMMC}" conv=fsync bs=1 count=442
  12. dd if=/boot/u-boot-default.img of="${DEV_EMMC}" conv=fsync bs=512 skip=1 seek=1

  13. sync

  14. echo "Done"

  15. echo "Start copy system for eMMC."

  16. mkdir -p /ddbr
  17. chmod 777 /ddbr

  18. PART_BOOT="/dev/mmcblk1p1"
  19. PART_ROOT="/dev/mmcblk1p2"
  20. DIR_INSTALL="/ddbr/install"

  21. if [ -d $DIR_INSTALL ] ; then
  22.     rm -rf $DIR_INSTALL
  23. fi
  24. mkdir -p $DIR_INSTALL

  25. if grep -q $PART_BOOT /proc/mounts ; then
  26.     echo "Unmounting BOOT partiton."
  27.     umount -f $PART_BOOT
  28. fi
  29. echo -n "Formatting BOOT partition..."
  30. mkfs.vfat -n "BOOT_EMMC" $PART_BOOT
  31. echo "done."

  32. mount -o rw $PART_BOOT $DIR_INSTALL

  33. echo -n "Cppying BOOT..."
  34. cp -r /boot/* $DIR_INSTALL && sync
  35. echo "done."

  36. echo -n "Edit init config..."
  37. sed -e "s/ROOTFS/ROOT_EMMC/g" \
  38. -i "$DIR_INSTALL/uEnv.ini"
  39. echo "done."

  40. rm $DIR_INSTALL/s9*
  41. rm $DIR_INSTALL/aml*

  42. umount $DIR_INSTALL

  43. if grep -q $PART_ROOT /proc/mounts ; then
  44.     echo "Unmounting ROOT partiton."
  45.     umount -f $PART_ROOT
  46. fi

  47. echo "Formatting ROOT partition..."
  48. mke2fs -F -q -t ext4 -L ROOT_EMMC -m 0 $PART_ROOT
  49. e2fsck -n $PART_ROOT
  50. echo "done."

  51. echo "Copying ROOTFS."

  52. mount -o rw $PART_ROOT $DIR_INSTALL

  53. cd /
  54. echo "Copy BIN"
  55. tar -cf - bin | (cd $DIR_INSTALL; tar -xpf -)
  56. #echo "Copy BOOT"
  57. #mkdir -p $DIR_INSTALL/boot
  58. #tar -cf - boot | (cd $DIR_INSTALL; tar -xpf -)
  59. echo "Create DEV"
  60. mkdir -p $DIR_INSTALL/dev
  61. #tar -cf - dev | (cd $DIR_INSTALL; tar -xpf -)
  62. echo "Copy ETC"
  63. tar -cf - etc | (cd $DIR_INSTALL; tar -xpf -)
  64. echo "Copy HOME"
  65. tar -cf - home | (cd $DIR_INSTALL; tar -xpf -)
  66. echo "Copy LIB"
  67. tar -cf - lib | (cd $DIR_INSTALL; tar -xpf -)
  68. echo "Create MEDIA"
  69. mkdir -p $DIR_INSTALL/media
  70. #tar -cf - media | (cd $DIR_INSTALL; tar -xpf -)
  71. echo "Create MNT"
  72. mkdir -p $DIR_INSTALL/mnt
  73. #tar -cf - mnt | (cd $DIR_INSTALL; tar -xpf -)
  74. echo "Copy OPT"
  75. tar -cf - opt | (cd $DIR_INSTALL; tar -xpf -)
  76. echo "Copy patch"
  77. tar -cf - patch | (cd $DIR_INSTALL; tar -xpf -)
  78. echo "Create PROC"
  79. mkdir -p $DIR_INSTALL/proc
  80. echo "Copy ROOT"
  81. tar -cf - root | (cd $DIR_INSTALL; tar -xpf -)
  82. echo "Create RUN"
  83. mkdir -p $DIR_INSTALL/run
  84. echo "Copy SBIN"
  85. tar -cf - sbin | (cd $DIR_INSTALL; tar -xpf -)
  86. echo "Copy SELINUX"
  87. tar -cf - selinux | (cd $DIR_INSTALL; tar -xpf -)
  88. echo "Copy SRV"
  89. tar -cf - srv | (cd $DIR_INSTALL; tar -xpf -)
  90. echo "Create SYS"
  91. mkdir -p $DIR_INSTALL/sys
  92. echo "Create TMP"
  93. mkdir -p $DIR_INSTALL/tmp
  94. echo "Copy USR"
  95. tar -cf - usr | (cd $DIR_INSTALL; tar -xpf -)
  96. echo "Copy VAR"
  97. tar -cf - var | (cd $DIR_INSTALL; tar -xpf -)
  98. echo "Copy www"
  99. tar -cf - www | (cd $DIR_INSTALL; tar -xpf -)

  100. echo "Copy fstab"

  101. rm $DIR_INSTALL/etc/fstab
  102. cp -a /root/fstab $DIR_INSTALL/etc/fstab

  103. rm $DIR_INSTALL/root/install.sh
  104. rm $DIR_INSTALL/root/fstab
  105. rm $DIR_INSTALL/usr/bin/ddbr
  106. rm $DIR_INSTALL/usr/bin/ddbr_backup_nand
  107. rm $DIR_INSTALL/usr/bin/ddbr_backup_nand_full
  108. rm $DIR_INSTALL/usr/bin/ddbr_restore_nand


  109. cd /
  110. sync

  111. umount $DIR_INSTALL

  112. echo "*******************************************"
  113. echo "Complete copy OS to eMMC "
  114. echo "*******************************************"
复制代码


以下是2.sh文件运行结果



  1. <blockquote>
复制代码

我的恩山、我的无线 The best wifi forum is right here.
你这个 1.sh 不就能自动搜索emmc并且安装吗?

为啥还需要运行 2.sh 呢?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
gaze 发表于 2023-12-2 21:07
你这个 1.sh 不就能自动搜索emmc并且安装吗?

为啥还需要运行 2.sh 呢?

是呀,我也好奇,运行1.sh之后不能正常开机,黑屏,路由器后台也没显示ip,估计是开不了机,要运行2.sh才能安装到emmc,

不运行1.sh,单运行2.sh也是不能开机
运行1.sh之后,不关机,直接运行2.sh也是不能开机,

总之要运行1再关机,开机再运行2.sh才能正常安装
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 05:56

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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