04月30, 2020

NetBSD 手动安装尝试

本篇只是尝试手动安装NetBSD,比FreeBSD要困难些,注意,只是理论,有待尝试,不完善还有很多错误!!!,仅作参考,不可做教程

查看磁盘设备

shell> sysctl hw.disknames
hw.disknames = ld0 wd0 cd0 sd0 dk0 dk1

# NVME设备 ld 
# SATA设备 wd 

查看磁盘表(可惜动态分区不显示)

shell> dkctl sd0 listwedges
    /dev/rsd0: 2 wedges:
    dk0: EFI system, 262144 blocks at 2048, type: msdos
    dk1: 2dfc926e-42bd-43fb-9bb5-b227c2c3fc99, 2560000 blocks at 264192, type: ffs

创建一个新的GPT类型磁盘

gpt destroy wd0
gpt create -f wd0

# 并不是必须的,这个操作会格式化和重建整个分区

创建分区

gpt add -a 2m -s 1g -t efi -l "EFI system" wd0  # 创建`ESP`分区
gpt add -a 2m -s 40g -t ffs -l "NetBSD" wd0  # 创建`NetBSD`根分区
gpt add -a 2m -s 8g -t swap -l "swap" wd0  # 创建动态分区

格式化分区

newfs_msdos -F 16 /dev/rdk1
newfs -O 2 -V2 -f 2048 /dev/rdk2

更改日志

将rwd0a 更改为rdk,其他同理,创建时输出日志有显示,忘记了用上面的命令查看
swapctl -a -p 1 /dev/wd0c # 无效,不能用删除

挂载文件系统

mount  /dev/dk2 /mnt
cd /mnt 
## swapon /dev/wd0c # 删除

提取二进制集

cd  /mnt

for set in KERN-GENERIC base comp etc  games man misc modules tests text xbase xcomp xetc xfont xserver; do
    > tar -xvJf /amd64/binary/sets/$set.tar.xz
    >  done

更改日志

tar -xzpf /amd64/binary/sets/$set.tgz 更改为 tar -xzJf /amd64/binary/sets/$set.tar.xz

设置引导程序

mount -t msdos /dev/wd0a /media
 mkdir -p  /media/EFI/boot
 cp /usr/mdec/*.efi /media/EFI/boot

## 方案一
cat > /media/EFI/boot/boot.cfg << EOF
 > menu=Boot normally:rndseed /etc/entropy-file;boot hd0b:netbsd
 > menu=Boot single user:rndseed /etc/entropy-file;boot hd0b:netbsd -s
 > menu=Disable ACPI:rndseed /etc/entropy-file;boot hd0b:netbsd -2
 > menu=Disable ACPI and SMP:rndseed /etc/entropy-file;boot hd0b:netbsd -12
 > menu=Drop to boot prompt:prompt
 > default=1
 > timeout=5
 > clear=1
 > EOF    

# 删除,没有这个文件{
## 方案二 
cp -p /mnt/usr/mdec/boot.cfg /mnt
# 编辑boot.cfg
}

installboot -v /dev/rwd0b /mnt/usr/mdec/bootxx_ffsv2

创建设备块

 cd /mnt/dev  &&  sh MAKEDEV all

设置chroot环境

mkdir {kern,proc}
mount_kernfs  kernfs   /mnt/kern
mount_procfs  procfs   /mnt/proc
mount_tmpfs  tmpfs   /mnt/var/shm
mount_ptyfs  ptyfs   /mnt/dev/pts
chroot  /mnt su -

/etc/fstab

/dev/wd0b               /       ffs     rw               1 1
/dev/wd0c               none    swap    sw,dp            0 0
kernfs                  /kern   kernfs  rw
ptyfs                   /dev/pts        ptyfs   rw
procfs                  /proc   procfs  rw
/dev/cd0a               /cdrom  cd9660  ro,noauto
tmpfs                   /var/shm        tmpfs   rw,-m1777,-sram%25

设置root密码

passwd root

设置键盘布局

echo "encoding $layout" >> /etc/wscons.conf

禁用扬声器提示音

echo "setvar  wskbd   bell.volume     0"  >> /etc/wscons.conf
echo "setvar  wskbd   bell.pitch         0"  >> /etc/wscons.conf

设置合理的帧缓冲控制台速度

echo "setvar  wskbd   repeat.del1     250"  >> /etc/wscons.conf
echo "setvar  wskbd   repeat.deln      30"  >> /etc/wscons.conf

设定时区

ln -sf  /usr/share/zoneinfo/${region}/${state} /etc/localtime
/etc/rc.conf
if [ -r /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
fi
rc_configured=YES
hostname=$HOSTNAME
clear_tmp=YES
random_seed=YES
random_file=/etc/entropy-file
wscons=YES
dhcpcd=YES

系统范围的区域设置

echo "export LANG=\"en_US.UTF-8\"" >> /etc/profile
echo "export LC_CTYPE=\"en_US.UTF-8\"" >> /etc/profile
echo "export LC_ALL=\"\"" >> /etc/profile
/etc/resolv.conf
domain         $hostname.$domain.$extension
nameserver     $nameserver  

配置以太网接口

cat > /etc/ifconfig.${if} << EOF
> up
> media autoselect
> dhcp
> EOF

设置你的IP

echo "$my_ip         $hostname  $hostname.$domain.$extension" >> /etc/hosts

添加标准用户

useradd -g wheel -G users -s /bin/${shell} -c "foo's real name" -m foo 
passwd foo

启用网络(ifconfig -l列出可用接口)

ifconfig $if up dhcp
dhcpcd $if

获取季度发布的pkgsrc tarball

ftp ftp://ftp.NetBSD.org/pub/pkgsrc/pkgsrc-${release}/pkgsrc.tar.gz 
tar -xzf pkgsrc.tar.gz -C /usr 
rm pkgsrc.tar.gz

安装pkgin并更新二进制软件包

cd /usr/pkgsrc/pkgtools/pkgin 
make install clean clean-depends 
echo "ftp://ftp.fr.NetBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -m)/$(uname -r)_${quarterly_release}/All" >> /usr/pkg/etc/pkgin/repositories.conf 
pkgin -f update

退出chroot

exit
umount /media
umount -fR /mnt

重启

reboot

参考来源

Installation on UEFI systems

NetBSD desktop Part 1: Manual NetBSD installation on GPT/UEFI

How to install NetBSD

本文链接:https://www.moebsd.cn/post/NetBSD shou-dong-an-zhuang-chang-shi.html

-- EOF --

Comments