mkfs-oe.sh 1.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
#!/bin/sh

# Usage: sh mkfs-oe.sh
# Build an rootfs image with minimal packages list.
# The output rootfs support systemd, dnf and ssh.
# This script includes installing RISC-V rpms into 
# a sysroot directory, which make it should be executed
# in RISC-V system, or x86/aarch64 system that support
# cross-arch dnf installation.

W
whoisxxx 已提交
11
. globals.inc
W
whoisxxx 已提交
12

13

W
whoisxxx 已提交
14
INSTALL_RPMS="$CORE_RPMS $BUILD_TOOLS"
15 16 17 18
set -e
set -x

mkdir -p /var/tmp/
W
whoisxxx 已提交
19
rm -f /var/tmp/oe-rv.raw
20 21

# Create parted and formatted disk
W
whoisxxx 已提交
22
truncate -s 10G /var/tmp/oe-rv.raw
23 24 25 26 27 28 29 30 31 32 33 34 35
losetup -P $(losetup -f) /var/tmp/oe-rv.raw
loopdev=$(losetup -a | grep oe-rv.raw | awk -F: '{print $1;}')
fdisk $loopdev << EOF
n
p
1


w
EOF
mkfs -t ext4 ${loopdev}p1

# Create the installroot
W
whoisxxx 已提交
36
mkdir  -p /var/tmp/mnt
37
mount -o loop /${loopdev}p1 /var/tmp/mnt
W
whoisxxx 已提交
38

W
whoisxxx 已提交
39 40
mkdir -p /var/tmp/mnt/{dev,proc,sys}
mkdir -p /var/tmp/mnt/dev/pts
W
whoisxxx 已提交
41 42 43 44
mount -t proc proc  /var/tmp/mnt/proc
mount -t sysfs sysfs /var/tmp/mnt/sys
mount -t devpts pts  /var/tmp/mnt/dev/pts  
mount -o bind /dev /var/tmp/mnt/dev
45 46

rpm --root /var/tmp/mnt --initdb
W
whoisxxx 已提交
47

W
whoisxxx 已提交
48
sed -e "s,@RPMREPOWEBSRV@,$WEB_RPM_REPO_SRV,g" < ./assets/openEuler-rv64.repo.in > /etc/yum.repo.d/oe-riscv.repo
49

W
whoisxxx 已提交
50 51 52 53 54 55
dnf install  --installroot /var/tmp/mnt   $INSTALL_RPMS 
cp /etc/yum.repos.d/oe-rv.repo /var/tmp/mnt/etc/yum.repos.d/

echo "Set default passwd to openEuler12#$"

echo "root:openEuler12#$" | chpasswd -R /var/tmp/mnt/
56 57 58 59 60
echo openEuler-RISCV-rare > /var/tmp/mnt/etc/hostname

sync
sleep 5

W
whoisxxx 已提交
61 62 63 64
umount -l /var/tmp/mnt/dev 
umount -l /var/tmp/mnt/dev/pts
umount /var/tmp/mnt/sys
umount /var/tmp/mnt/proc
65 66 67
umount /var/tmp/mnt

losetup -d $loopdev
W
whoisxxx 已提交
68 69 70 71
# Currently lack of qemu-img on openEuler RISC-V, 
# you can do this step in a x86 or aarch64 host 
#qemu-img convert -f raw -O qcow2 /var/tmp/oe-rv.raw /var/tmp/oe-rv.qcow2
#rm -rf /var/tmp/oe-rv.raw