AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 441417
Accepted
0xC0000022L
0xC0000022L
Asked: 2018-05-03 14:45:22 +0800 CST2018-05-03 14:45:22 +0800 CST 2018-05-03 14:45:22 +0800 CST

通过 Debian 8.10 启动 Ubuntu (18.04) 有点麻烦

  • 772

我使用的主机提供了一个 Debian 8.10(内核 4.9.85)作为救援系统。过去,我一直使用它来引导 Ubuntu,使用debootstrap from here。

我正在使用一些准备步骤,例如安装,这是我使用的 URL 中出现apt-cacher-ng的原因( http://localhost:3142/us.archive.ubuntu.com/ubuntu/)和.localhost:3142ubuntu-archive-keyring

debootstrap调用如下:

LANG=C debootstrap --keep-debootstrap-dir --verbose --include=ubuntu-server,bash-completion,sudo,lshw,tmux,unzip,pciutils,usbutils,openssh-server,unattended-upgrades,linux-image-generic,cron --variant=minbase --arch=$(dpkg --print-architecture) bionic /target http://localhost:3142/us.archive.ubuntu.com/ubuntu/

(我添加了--verbose唯一的,希望看看是否有任何问题,但无济于事。)

现在debootstrap运行的奇怪之处在于,在这个新版本中,我最终只看到了步骤Retrieving、Validating和Extracting(对于包的一个子集),但没有看到这些包的设置。

所以我对自己说:“好吧,我用xenial.

+ debootstrap --keep-debootstrap-dir --verbose --include=ubuntu-server,bash-completion,sudo,lshw,tmux,unzip,pciutils,usbutils,openssh-server,unattended-upgrades,linux-image-generic,cron --variant=minbase --arch=
amd64 xenial /target http://localhost:3142/us.archive.ubuntu.com/ubuntu/
I: Retrieving InRelease
I: Checking Release signature
I: Valid Release signature (key id 790BC7277767219C42C86F933B4FE6ACC0B21F32)
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: acpid apport apt-utils at bcache-tools btrfs-tools busybox-initramfs byobu ca-certificates cloud-guest-utils cloud-initramfs-copymods cloud-initramfs-dyn-netconf cpio crda
cryptsetup cryptsetup-bin curl dh-python distro-info-data dmeventd dmsetup ethtool fonts-ubuntu-font-family-console gawk gcc-5-base gettext-base gir1.2-glib-2.0 git git-man gnupg gpgv grub-legacy-ec2 ifenslave i
fupdown initramfs-tools initramfs-tools-bin initramfs-tools-core iproute2 iso-codes iw klibc-utils kmod libapt-inst2.0 libapt-pkg5.0 libasn1-8-heimdal libasprintf0v5 libbsd0 libcurl3-gnutls libdbus-1-3 libdbus-g
lib-1-2 libdevmapper-event1.02.1 libdrm2 libdumbnet1 libedit2 liberror-perl libevent-2.0-5 libexpat1 libffi6 libfuse2 libgdbm3 libgirepository-1.0-1 libglib2.0-0 libgmp10 libgnutls30 libgpm2 libgssapi-krb5-2 lib
gssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhogweed4 libhx509-5-heimdal libicu55 libidn11 libk5crypto3 libkeyutils1 libklibc libkrb5-26-heimdal libkrb5-3 libkrb5support0 libl
dap-2.4-2 liblvm2app2.2 liblvm2cmd2.02 liblz4-1 liblzo2-2 libmnl0 libmpdec2 libmpfr4 libmspack0 libnettle6 libnewt0.52 libnl-3-200 libnl-genl-3-200 libp11-kit0 libpci3 libperl5.22 libplymouth4 libpng12-0 libpopt
0 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-stdlib libpython3.5-minimal libpython3.5-stdlib libreadline5 libreadline6 libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules-db libsigs
egv2 libslang2 libsqlite3-0 libssl1.0.0 libstdc++6 libtasn1-6 libusb-0.1-4 libusb-1.0-0 libutempter0 libwind0-heimdal libwrap0 linux-base linux-firmware linux-image-4.4.0-21-generic linux-image-extra-4.4.0-21-ge
neric lsb-release lvm2 mdadm mime-support open-iscsi open-vm-tools openssh-client openssh-sftp-server openssl overlayroot patch perl perl-modules-5.22 plymouth python python-apt-common python-minimal python2.7 p
ython2.7-minimal python3 python3-apport python3-apt python3-chardet python3-dbus python3-debian python3-gi python3-minimal python3-newt python3-pkg-resources python3-problem-report python3-pycurl python3-six pyt
hon3-software-properties python3.5 python3.5-minimal readline-common screen software-properties-common sosreport ubuntu-cloudimage-keyring ubuntu-keyring ucf udev update-notifier-common vim vim-common vim-runtim
e vlan wireless-regdb xfsprogs xz-utils
I: Checking component main on http://localhost:3142/us.archive.ubuntu.com/ubuntu...
I: Retrieving acpid 1:2.0.26-1ubuntu2
I: Validating acpid 1:2.0.26-1ubuntu2
[...]
I: Chosen extractor for .deb packages: dpkg-deb
I: Extracting adduser...
I: Extracting base-files...
I: Extracting base-passwd...
[...]
I: Extracting zlib1g...

这很奇怪,因为在过去,设置阶段工作顺利。但现在它只是被默默地跳过了?!旧debootstrap版本不会这样做,因为那些人​​不知道 Bionic Beaver (Ubuntu 18.04)。

有两件事我认为可能是一个问题:

  1. 内核版本差异:Ubuntu 18.04 中的 4.15 与 Debian 8.10 中的 4.9.85。
  2. libc 版本差异:2.27-3ubuntu1 与 2.19-18+deb8u10。

...但在任何一种情况下,我都希望从debootstrap. 同样对于xenial(Ubuntu 16.04),我不应该期待同样的差异。但是我没有看到任何错误,而是跳过了重要的设置步骤并尝试chroot使用/target命令/bin/bash只给出

# LANG=en_US.UTF-8 chroot /target /bin/bash
groups: cannot find name for group ID 0
I have no name!@rescue:/#

挖一点结果没有/etc/passwd,依此类推。/dev,/proc并/sys绑定安装到/target.

我该如何解决这个问题,以便从所述 Debian 救援系统成功引导 Ubuntu?架构匹配主机和目标,那么是什么阻止了设置步骤的运行?

注意:我无法启动到更新的内核。或者更确切地说,实现类似目标的唯一方法是首先安装某种本地救援系统。


我正在使用的软件

$ debootstrap --version
debootstrap 1.0.95ubuntu1
$ uname -a
Linux rescue 4.9.85 #2 SMP Thu Mar 1 08:06:18 CET 2018 x86_64 GNU/Linux

我也安装了ubuntu-archive-keyring。


我还尝试了什么

我还尝试传递--foreign给debootstrap,这应该会导致我看到的行为,但也应该留下一个可执行文件/debootstrap/debootstrap,然后我可以使用--second-stage. 然而,虽然它表现出与我在没有--foreign命令行开关的情况下看到的完全相同的行为,但目标文件系统中没有完成/debootstrap/debootstrap引导。

此外,我尝试通过这种方式安装它来使用debootstrap:(jessie-backports它apt-get install -t jessie-backports debootstrap标识为debootstrap 1.0.89~bpo8+1)。然后链接/usr/share/debootstrap/scripts/bionic到/usr/share/debootstrap/scripts/gutsy.

debian ubuntu
  • 1 1 个回答
  • 6326 Views

1 个回答

  • Voted
  1. Best Answer
    0xC0000022L
    2018-05-04T03:32:51+08:002018-05-04T03:32:51+08:00

    好吧,我想通了。的调用debootstrap确实通过返回退出代码 1 表示失败。我错过了这一点,因为我如何链接多个命令并使用子 shell。

    一旦我弄清楚了,我必须找出debootstrap遇到了什么问题。从(目标内部)来看,这并不明显/debootstrap/debootstrap.log,尽管事后看来确实如此。所以我需要对debootstrap. 为了做到这一点,/usr/sbin/debootstrap通过显式调用 shell 脚本/bin/sh -x(以打开跟踪),实际上可以在内部/debootstrap/debootstrap.log(在目标内部)看到输出。在我的情况下mknod,这个跟踪条目和输出显示了问题:

    + mknod -m 666 /target/dev/null c 1 3
    mknod: '/target/dev/null': File exists
    

    这反过来又是由我安装引起的/dev,/proc并/sys预先进入目标(过去曾奏效!)。

    在新debootstrap版本中,这似乎无条件地失败。mknod相应的函数调用setup_devices_simple来自/usr/share/debootstrap/functions.

    通过比较和(以及后续版本)的debootstrap脚本,我看到的一个显着变化是函数的调用从函数移动到 (脚本的)函数。这个函数调用除非做变体或在“外来”内核上运行,因此会导致比以前更早地被调用。1.0.591.0.89~bpo8+1setup_devicessecond_stage_installfirst_stage_installgutsysetup_devices_simplefakechrootmknod

    似乎之前没有失败的原因是,过去设备保存在 .tgz 文件中并解压到位,而现在直接debootstrap使用mkdnod。

    • 8

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve