从现有 Linux 系统上安装 Gentoo [云环境无 VNC] - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
hiplon
V2EX    Linux

从现有 Linux 系统上安装 Gentoo [云环境无 VNC]

  •  1
     
  •   hiplon
    kunlunh 2023-11-03 23:28:44 +08:00 1903 次点击
    这是一个创建于 710 天前的主题,其中的信息可能已经有所发展或是发生改变。

    基本思路和以前发过的从现有 Linux 系统上安装 Archlinux[云环境无 VNC] 差不多,主要就是在现有系统上先挂载 stage3,然后将磁盘挂在载第一层 chroot 下的/mnt/gentoo ,然后通过删除原系统、安装新 stage3 的方式实现。

    Install Gentoo ON Exsit Linux without VNC

    NO WARRANTY!!! BACKUP ALL YOUR DATA BEFORE OPERATING!

    Operating the following In the Exsiting Linux Distribution

    # Download and move the Gentoo stage3 tar package to /tmp (Exsiting Linux Distribution). root@ali:/tmp/stage3# cp /root/stage3-amd64-systemd-20231029T164701Z.tar.xz . # Unzip the Gentoo stage3 tar package. root@ali:/tmp/stage3# tar -xf stage3-amd64-systemd-20231029T164701Z.tar.xz root@ali:/tmp/stage3# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin stage3-amd64-systemd-20231029T164701Z.tar.xz sys tmp usr var root@ali:/tmp/stage3# rm stage3-amd64-systemd-20231029T164701Z.tar.xz root@ali:/tmp/stage3# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin sys tmp usr var root@ali:/tmp/stage3# cd .. root@ali:/tmp# ls # Editing the make file (Actually it can be done later) root@ali:/tmp/stage3# vim etc/portage/make.conf # Editing the repos file (Actually it can be done later) root@ali:/tmp/stage3# vim etc/portage/repos.conf/gentoo.conf root@ali:/tmp/stage3# cp /etc/resolv.conf etc/. # Mount Dynamic links for the system root@ali:/tmp/stage3# mount --types proc /proc /tmp/stage3/proc root@ali:/tmp/stage3# mount --rbind /sys /tmp/stage3/sys root@ali:/tmp/stage3# mount --make-rslave /tmp/stage3/sys root@ali:/tmp/stage3# mount --rbind /dev /tmp/stage3/dev root@ali:/tmp/stage3# mount --make-rslave /tmp/stage3/dev root@ali:/tmp/stage3# mount --bind /run /tmp/stage3/run root@ali:/tmp/stage3# mount --make-slave /tmp/stage3/run root@ali:/tmp/stage3# test -L /dev/shm && rm /dev/shm && mkdir /dev/shm root@ali:/tmp/stage3# mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm root@ali:/tmp/stage3# chmod 1777 /dev/shm /run/shm root@ali:/tmp/stage3# # Now mount to the /tmp Gentoo system root@ali:/tmp# mount --bind /tmp/stage3/ /tmp/stage3/ root@ali:/tmp# root@ali:/tmp# vim /tmp/stage3/^C root@ali:/tmp# chroot /tmp/stage3/ ali / # # export for easily oberve ali / # export PS1='root@gentoo-chroot-1 #' root@gentoo-chroot-1 # 

    Operating the following In 1st chroot environment

    ali / # export PS1='root@gentoo-chroot-1 # ' root@gentoo-chroot-1 #env-update !!! Section 'gentoo' in repos.conf has location attribute set to nonexistent directory: '/var/db/repos/gentoo' !!! Invalid Repository Location (not a dir): '/var/db/repos/gentoo' >>> Regenerating /etc/ld.so.cache... root@gentoo-chroot-1 # mkdir /var/db/repos/gento root@gentoo-chroot-1 #env-update root@gentoo-chroot-1 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 61.9M 1 loop loop1 7:1 0 63.5M 1 loop loop2 7:2 0 111.9M 1 loop loop3 7:3 0 79.9M 1 loop loop4 7:4 0 40.9M 1 loop vda 252:0 0 40G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 200M 0 part └─vda3 252:3 0 39.8G 0 part # Mount the hard disk according to your actual environment root@gentoo-chroot-1 # mount /dev/vda3 /mnt/gentoo mount: /mnt/gentoo: mount point does not exist. dmesg(1) may have more information after failed mount system call. 

    ! Mount the disk to /mnt/gentoo

    Actually, From the step, you can follow the Gentoo's Handbook to install the System !

    root@gentoo-chroot-1 # mkdir /mnt/gentoo root@gentoo-chroot-1 # mount /dev/vda3 /mnt/gentoo root@gentoo-chroot-1 # mount /dev/vda2 /mnt/gentoo/boot/efi root@gentoo-chroot-1 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 61.9M 1 loop loop1 7:1 0 63.5M 1 loop loop2 7:2 0 111.9M 1 loop loop3 7:3 0 79.9M 1 loop loop4 7:4 0 40.9M 1 loop vda 252:0 0 40G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 200M 0 part /mnt/gentoo/boot/efi └─vda3 252:3 0 39.8G 0 part /mnt/gentoo root@gentoo-chroot-1 # root@gentoo-chroot-1 # ls /mnt/gentoo/ bin boot dev etc home lib lib32 lib64 libx32 lost+found media mnt opt proc root run sbin snap srv sys tmp usr var root@gentoo-chroot-1 # root@gentoo-chroot-1 # bin boot dev etc home lib lib64 media mnt opt proc root run sbin stage3-amd64-systemd-20231029T164701Z.tar.xz sys tmp usr var root@gentoo-chroot-1 # cd /mnt/gentoo/ # Copy the stage file to /mnt/gentoo (will be the new system's root) root@gentoo-chroot-1 # cp root/stage3-amd64-systemd-20231029T164701Z.tar.xz . root@gentoo-chroot-1 # pwd /mnt/gentoo root@gentoo-chroot-1 # ls bin dev home lib32 libx32 media opt root sbin srv sys usr boot etc lib lib64 lost+found mnt proc run snap stage3-amd64-systemd-20231029T164701Z.tar.xz tmp var root@gentoo-chroot-1 # root@gentoo-chroot-1 # pwd /mnt/gentoo root@gentoo-chroot-1 # # Delete the existing linux distribution, NOT ALL DIRs. root@gentoo-chroot-1 # rm -rf bin home etc lib lib64 opt root sbin srv usr var root@gentoo-chroot-1 # ls boot dev lib32 libx32 lost+found media mnt proc run snap stage3-amd64-systemd-20231029T164701Z.tar.xz sys tmp root@gentoo-chroot-1 # rm lib32 libx32 root@gentoo-chroot-1 # ls boot dev lost+found media mnt proc run snap stage3-amd64-systemd-20231029T164701Z.tar.xz sys tmp # Unzip the stage3 as the new system NOW! root@gentoo-chroot-1 # tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner root@gentoo-chroot-1 # ls bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin snap stage3-amd64-systemd-20231029T164701Z.tar.xz sys tmp usr var root@gentoo-chroot-1 # # Copy the Configurations or Editing it as you like Now. root@gentoo-chroot-1 # cp /etc/portage/make.conf /mnt/gentoo/etc/portage/make.conf root@gentoo-chroot-1 # mkdir --parents /mnt/gentoo/etc/portage/repos.conf root@gentoo-chroot-1 # cp /etc/portage/repos.conf/gentoo.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf root@gentoo-chroot-1 # cp --dereference /etc/resolv.conf /mnt/gentoo/etc/ root@gentoo-chroot-1 # cp --dereference /etc/resolv.conf /mnt/gentoo/etc/ root@gentoo-chroot-1 # mount --types proc /proc /mnt/gentoo/proc root@gentoo-chroot-1 # mount --rbind /sys /mnt/gentoo/sys root@gentoo-chroot-1 # mount --make-rslave /mnt/gentoo/sys root@gentoo-chroot-1 # mount --rbind /dev /mnt/gentoo/dev root@gentoo-chroot-1 # mount --make-rslave /mnt/gentoo/dev root@gentoo-chroot-1 # mount --bind /run /mnt/gentoo/run root@gentoo-chroot-1 # mount --make-slave /mnt/gentoo/run root@gentoo-chroot-1 # test -L /dev/shm && rm /dev/shm && mkdir /dev/shm root@gentoo-chroot-1 # mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm root@gentoo-chroot-1 # chmod 1777 /dev/shm /run/shm root@gentoo-chroot-1 # 

    Now CAN chroot to the New Gentoo System !

    chroot /mnt/gentoo/ /bin/bash source /etc/profile ali / # eselect profile list ali / # merge -auvDN --with-bdeps=y @world * IMPORTANT: 10 news items need reading for repository 'gentoo'. * Use eselect news read to view new items. Total: 16 packages (3 upgrades, 3 new, 10 reinstalls), Size of downloads: 31022 KiB Would you like to merge these packages? [Yes/No] Yes ali / # echo "Hongkong" >/etc/timezone ali / # emerge --config sys-libs/timezone-data Configuring pkg... * Found a regular file at /etc/localtime. * Some software may expect a symlink instead. * You may convert it to a symlink by removing the file and running: * emerge --config sys-libs/timezone-data * Copying /usr/share/zoneinfo/Hongkong to /etc/localtime. ali / # echo "en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8" >> /etc/locale.gen ali / # locale-gen * Generating 3 locales (this might take a while) with 2 jobs * (1/3) Generating en_US.UTF-8 ... [ ok ] * (2/3) Generating zh_CN.UTF-8 ... [ ok ] * (3/3) Generating UTF-8 ... [ ok ] * Generation complete * Adding locales to archive ... [ ok ] ali / # ali / # eselect locale list Available targets for the LANG variable: [1] C [2] C.utf8 [3] POSIX [4] en_US.utf8 [5] zh_CN.utf8 [6] C.UTF8 * [ ] (free form) ali / # es esac eselect ali / # eselect locale set 4 Setting LANG to en_US.utf8 ... Run ". /etc/profile" to update the variable in your shell. ali / # ali / # env-update && source /etc/profile >>> Regenerating /etc/ld.so.cache... ali / # emerge --ask sys-kernel/gentoo-kernel-bin ali / # emerge --depclean ali / # emerge --ask vim genfstab ali ~ # genfstab -U / > /etc/fstab # Remember to edit the network setting! ali ~ # vim /etc/systemd/network/20-wired.network # Install the Grub for booting systems ! ali ~ # emerge --ask --verbose sys-boot/grub ali ~ # grub-install --target=x86_64-efi --efi-directory=/boot/efi ali ~ # grub-install --target=x86_64-efi --efi-directory=/boot/efi Installing for x86_64-efi platform. Installation finished. No error reported. ali ~ # grub-mkconfig -o /boot/grub/grub.cf^C ali ~ # ls /boot/efi/ EFI NvVars ali ~ # grub-mkconfig -o /boot/grub/grub.cfg # Enable DHCP and sshd ali ~ # systemd-machine-id-setup ali ~ # systemctl enable systemd-networkd ali ~ # systemctl enable sshd ali ~/.ssh # reboot ali ~/.ssh # Connection closing...Socket close. 

    After rebooting the system, expectedly can boot the the New Gentoo System!

    Connection established. To escape to local shell, press 'Ctrl+Alt+]'. WARNING! The remote SSH server rejected X11 forwarding request. gentoo ~ # ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:16:3e:01:b8:12 brd ff:ff:ff:ff:ff:ff altname enp0s5 gentoo ~ # emerge neofetch gentoo ~ # neofetch -/oyddmdhs+:. root@gentoo -odNMMMMMMMMNNmhy+-` ----------- -yNMMMMMMMMMMMNNNmmdhy+- OS: Gentoo Linux x86_64 `omMMMMMMMMMMMMNmdmmmmddhhy/` Host: Alibaba Cloud ECS pc-i440fx-2.1 omMMMMMMMMMMMNhhyyyohmdddhhhdo` Kernel: 6.1.57-gentoo-dist .ydMMMMMMMMMMdhs++so/smdddhhhhdm+` Uptime: 7 mins oyhdmNMMMMMMMNdyooydmddddhhhhyhNd. Packages: 324 (emerge) :oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh Shell: bash 5.1.16 .:+sydNMMMMMNNNmmmdddhhhhhhmMmy Resolution: 1024x768 /mMMMMMMNNNmmmdddhhhhhmMNhs: Terminal: /dev/pts/1 `oNMMMMMMMNNNmmmddddhhdmMNhs+` CPU: Intel Xeon Platinum (2) @ 2.500GHz `sNMMMMMMMMNNNmmmdddddmNMmhs/. GPU: 00:02.0 Cirrus Logic GD 5446 /NMMMMMMMMNNNNmmmdddmNMNdso:` Memory: 89MiB / 1865MiB +MMMMMMMNNNNNmmmmdmNMNdso/- yMMNNNNNNNmmmmmNNMmhs+/-` /hMMNNNNNNNNMNdhs++/-` `/ohdmmddhys+++/:.` `-//////:--. gentoo ~ # 

    Enjoying Gentoo!

    refer:

    1.Install Gentoo ON Exsit Linux without VNC

    2.Gentoo's Handbook

    3. 从现有 Linux 系统上安装 Archlinux

    4.Quick Gentoo Setup

    4 条回复    2024-01-25 19:15:40 +08:00
    learningman
        1
    learningman  
       2023-11-04 01:23:11 +08:00 via Android
    做一个 rootfs 然后直接 dd 不行吗
    LindsayZhou
        2
    LindsayZhou  
       2023-11-04 12:10:48 +08:00
    你这个把 boot 分区留下来了吧,我一般 Arch 重装用的 https://github.com/felixonmars/vps2arch
    它把 boot 分区也给扬了。
    hiplon
        3
    hiplon  
    OP
       2023-11-04 12:31:39 +08:00
    @LindsayZhou 为 UEFI 留一个引导分区,在第二步的时候删除原 boot 分区内容或者更改分区名字都行,最后都是生成 Gentoo 的引导文件给 grub 用
    mhjyzs
        4
    mhjyzs  
       2024-01-25 19:15:40 +08:00
    这样是不是没法更改文件系统?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     979 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:58 PVG 02:58 LAX 11:58 JFK 14:58
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86