From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id sHUcBGVZzWOH2AAAbAwnHQ (envelope-from ) for ; Sun, 22 Jan 2023 16:42:29 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id KGIcBGVZzWN2ewEA9RJhRA (envelope-from ) for ; Sun, 22 Jan 2023 16:42:29 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 60A683197B for ; Sun, 22 Jan 2023 16:42:28 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pJcTg-0002Kw-Ta; Sun, 22 Jan 2023 10:41:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pJcS0-0001Pq-Sm for help-guix@gnu.org; Sun, 22 Jan 2023 10:40:09 -0500 Received: from out2-smtp.messagingengine.com ([66.111.4.26]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pJcRy-0006ya-FR for help-guix@gnu.org; Sun, 22 Jan 2023 10:40:08 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 02A275C0121 for ; Sun, 22 Jan 2023 10:40:00 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Sun, 22 Jan 2023 10:40:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greenfork.me; h= cc:content-type:date:date:from:from:in-reply-to:message-id :mime-version:reply-to:reply-to:sender:subject:subject:to:to; s= fm2; t=1674401999; x=1674488399; bh=l/CoY8ZUA6DqrlcGlLdmGtmVv3Ck QFu/oeniwYxolJA=; b=EcoC9r4h+gndpfZjHGUjshwTUx+3XSOQZhtexBHDPyrO BmPUBRwpw+mnTEZfKaXmTimbMfjsd2EZ8sDqjETG5IJYR0GL3UXy6tpHuso4V/1V 9MnMBzc0Is2OHHIbXB4xO8Pv8ehQOdUvIMxYDF27md9TUSYStkc76QyLO7+LwnTt sm8LLb7hqTem+2LYyOPlNubT8gkWrYmCF/pb6d4Q6E9MCatvZTZQOol3UOwVIOrC FXN2CrqPHRuS0DusHI1+gqPgeaOvkXE1IpytzD4terYU4F5LM0yHqfqGramRYelu UBNtGzpfvjcAfLF7z34RXszeM++wiLYesv54FoXjiA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:message-id:mime-version :reply-to:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1674401999; x=1674488399; bh=l/CoY8ZUA6DqrlcGlLdmGtmVv3CkQFu/oen iwYxolJA=; b=GAKe413lmg4FLINH6aeqqUBCM/ruyehJ9ETNqJQ7IG8BZX+alYO +kN30natzhWc+Gn8/vDuxKRG8z9S9KmFvZTeYdnsSXEwhQ/SwGlWhb3x+waaxXyX FWVHk7RZ4wm0J2AI83TBMfVtn3KTPYvX4oGkg9LWbg30Wa+tHQgUO+2z8Rml8vyg px3uzeUHuqIc6NeAOk7zeRA9ndVPlWeGG+yrsnfu4mOZJYA9iTzG3OQNHTvo1S2k i3D0JEU4qec0TeA6f1HThGUrwt8k6WtRJ0jq2pfoqwq4hxNIhmGnJbhrl2EecK5D DfQBpPGmX897K7DVE3eKqp4Rjwzq4JpboZA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudduiedgkedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegfhffvufffrhfkgggtsehttdertd dtredtnecuhfhrohhmpeffmhhithhrhicuofgrthhvvgihvghvuceophhusghlihgtsehg rhgvvghnfhhorhhkrdhmvgeqnecuggftrfgrthhtvghrnhepjeektdegtddtteeivdejgf evgfdtgfdtjedvleffjeegvdekfedtueduiefgvedunecuffhomhgrihhnpehpohhrkhgs uhhnrdgtohhmpdhvuhhlthhrrdgtohhmpdhgnhhurdhorhhgpdgurhhophgsohigrdgtoh hmpdhothhhrggtvghhvgdrohhrghdpshhtuhhmsghlvghsrdhiugdrrghupdhprghnthhh vghrgidrohhrghdpshhrrdhhthenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpehpuhgslhhitgesghhrvggvnhhfohhrkhdrmhgv X-ME-Proxy: Feedback-ID: i0ec9468c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Sun, 22 Jan 2023 10:39:58 -0500 (EST) User-agent: mu4e 1.8.13; emacs 28.2.50 From: Dmitry Matveyev To: help-guix@gnu.org Subject: guix deploy: modinfo.sh doesn't exist error Date: Sun, 22 Jan 2023 21:20:49 +0600 Message-ID: <87k01ey3w3.fsf@greenfork.me> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=66.111.4.26; envelope-from=public@greenfork.me; helo=out2-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sun, 22 Jan 2023 10:41:50 -0500 X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: public@greenfork.me Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1674402148; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=l/CoY8ZUA6DqrlcGlLdmGtmVv3CkQFu/oeniwYxolJA=; b=C7Q4BChbYPDN53XO6zNLkTWDBrUU0tAuC5+Pwk157sY66TGf1luJ+XHzzNxkdpGznVMSJW y4qLhrXtPO/o0nPwJKnnOJoxLDLNlwtWjnMwF3cYo6SccBLEX4NlQi8+GoA5W7vqPALKnA acikC2m5ON7GhmpMZxwAd9/yZIZMlhuJwySgjHsNl074y8q2YqPAbt/63XAmZgZnqWvSPz WlmXcO8Jnzm4RKXKgQGCiUKfs2xxyhiy0WHpbIxmqCv4i+m1a3MBgrBqMvYoutCBQLGN/E gJEWPPlwUAp59pmfhbccgPBFfAIkmXsEhdSroQxRLKl+mm/ANK5rlRQLe6AKcg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=greenfork.me header.s=fm2 header.b=EcoC9r4h; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm3 header.b=GAKe413l; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1674402148; a=rsa-sha256; cv=none; b=UUFYo0TgOA5bVB8qqbHw47O4l/oBp5i9J1H5hAWT3F9TUHcsDn/l+QZ9qc3djiPO2xtIIb m1CfRn+TQjtBXz4Ts8rg1hHaLjll1fn9fw+SKTtG7fkHyvq0d+6Bur7y4m4t7ndox3U9Y0 vSz8ARikRRi9MvMFMtCYa1qjNa7hR6IO7C+9D0J55wHoFaW8Scbfh3ILHve5AbZb82D1er uBRi9mCQ7xdkpRPLbYBvDYEqsvguk5OwIUD5GJujMW+Kz8o0RTaluwZZA4DZqxR9ANQ8yq Nr7tqmzM1WkrYbcp0LQd8KNj0eoQ+dizJX9JaDFWs97LI0uRbV3TgV0wmcrCuA== X-Migadu-Scanner: scn1.migadu.com X-Migadu-Spam-Score: 2.51 X-Spam-Score: 2.51 X-Migadu-Queue-Id: 60A683197B Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=greenfork.me header.s=fm2 header.b=EcoC9r4h; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm3 header.b=GAKe413l; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" X-TUID: EIdIXDA8Qw3l I'm trying to use guix deploy to install a Guix System at vultr.com using a minimal iso image file of Guix System. So I do: 1. Create a minimal ISO image using guix system 2. Boot the ISO image on a remote server 3. Use guix deploy to install the system I fail at step 3 with "modinfo.sh doesn't exist" error. Below is (1) the end of the guix deploy command output and (2) my complete instruction of what I do up to guix deploy command. I use Guix version d6f1b9487da3e6f9c3ef49dea9c97c0408a25777 on Arch Linux. The end of guix deploy command is: ================================================================================ building /gnu/store/m6vv3zqf792spnc9fmsnbbfah1cyjx35-grub.cfg.drv... building /gnu/store/sw9rqrsdqlz5mqxji9wk7i7v30q6mgl2-install-bootloader.scm.drv... building /gnu/store/nyb01ypw9wbhvk1yqzgpd1brydc15llq-remote-exp.scm.drv... guix deploy: sending 3 store items (0 MiB) to '10.10.255.50'... guix deploy: error: failed to deploy vm: failed to install bootloader on '70.34.254.49': %exception #> ================================================================================ The complete instruction of my current deployment process: ================================================================================ # How to set up Guix System on VPS ## Preparation We need to have basic things for setting up. 1. Set up DNS record for future HTTPS support, for example, on . 2. Register at the hosting provider site, for example, on . 3. If not using the Guix System as your desktop operating system, install Guix on your system as a package manager . ## Create and deploy the first image 1. Create a new directory for this deployment and `cd` there. 2. Generate ssh keys for authentication: run `ssh-keygen`, choose to store them in the current directory `./`. 3. Copy this to `base_vm.scm` ``` scm (use-modules (gnu)) (use-service-modules networking ssh) (use-package-modules bootloaders ssh) (operating-system (host-name "vm") (locale "en_US.utf8") (timezone "Etc/UTC") (bootloader (bootloader-configuration (bootloader grub-bootloader) (targets '("/dev/vda")) (terminal-outputs '(console)))) (file-systems (cons (file-system (mount-point "/") (device "/dev/vda1") (type "ext4")) %base-file-systems)) (services (append (list (service dhcp-client-service-type) (service openssh-service-type (openssh-configuration (openssh openssh-sans-x) (password-authentication? #f) (permit-root-login #t) (authorized-keys ;; Authorise our SSH key. `(("root" ,(local-file "id_rsa.pub"))))))) %base-services))) ``` 4. Use a minimal config in `base_vm.scm` to generate the base image of the operating system, this will take a while on the very first run. Note that you might need to change `--image-type` to something else like `qcow2` if the hosting provider only supports limited options. See all available formats with `guix system --list-image-types`. ``` guix system image --save-provenance --image-type=iso9660 base_vm.scm ``` At the very end there will be a path to the generated image such as ``` /gnu/store/6ab54m88rfbdankmacrgpcm9gzzbmi1v-image.iso ``` 5. Upload this image to the hosting provider. In Vultr it is required to put it online, for example, to as it allows 2 GB free space. Only then it can be added as an iso image in a separate step. 6. Choose options for the virtual server, select the uploaded image and instantiate the system. 7. Try logging in with ssh, for example: ``` ssh -i id_rsa root@10.10.142.48 ``` 8. If booted from iso on Vultr, it is necessary to partition the disk too: ``` shell fdisk /dev/vda # Create new GPT table g # Create partition for /boot, set size to 300 MB and change its type to UEFI n +300M t uefi # Create partition for root partition for all the remaining space n # Press Enter many times t 2 # This is "Linux root (x86-64) 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709 # Check that everything is good p # Write partitions and quit w ``` 9. If everything is successful, quit with Ctrl+D. 10. Generate Guix signing keys with `sudo guix archive --generate-key`, now they are available at `/etc/guix`. 11. Save this template to `first_deploy.scm`: ```scm (use-modules (gnu) (guix)) (use-service-modules networking ssh admin) (use-package-modules bootloaders ssh) (define os (operating-system (host-name "vm") (locale "en_US.utf8") (timezone "Etc/UTC") (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets '("/boot/efi")))) (file-systems (append (list (file-system (device "/dev/vda2") (mount-point "/") (type "ext4")) (file-system (device "/dev/vda1") (mount-point "/boot/efi") (type "vfat"))) %base-file-systems)) (services (append (list (service openssh-service-type (openssh-configuration (openssh openssh-sans-x) (password-authentication? #f) (permit-root-login #t) (authorized-keys `(("root" ,(local-file "id_rsa.pub")))))) (service dhcp-client-service-type) (service unattended-upgrade-service-type)) (modify-services %base-services ;; The server must trust the Guix packages you build. If you add the signing-key ;; manually it will be overridden on next `guix deploy` giving ;; "error: unauthorized public key". This automatically adds the signing-key. (guix-service-type config => (guix-configuration (inherit config) (authorized-keys (append (list (local-file "/etc/guix/signing-key.pub")) %default-authorized-guix-keys))))))))) (list (machine (operating-system os) (environment managed-host-environment-type) (configuration (machine-ssh-configuration (host-name "71.41.243.84") (system "x86_64-linux") ;; Update this after seeing an error running `guix deploy`. (host-key "ssh-ed25519 AAAAC3N123456789mZwG+Y8Xk+XN123456789GNJ1RU3BkuUU") (user "root") ;; Use this key to communicate with the machine. (identity "id_rsa"))))) ``` 12. Try deploying with `guix deploy first_deploy.scm`, you will see an error that host key doesn't match, it is expected, update it in the machine configuration accordingly: ``` (host-key "ssh-ed25519 AAAAC3N123456789mZwG+Y8Xk+XN123456789GNJ1RU3BkuUU") ``` 13. Re-run `guix deploy first_deploy.scm` to finally install the system. Note that you may need to run it several times in case it fails because of errors such as "Throw to key `guile-ssh-error' with args `("channel-open-session" "Channel openingfailure: channel 67 error (2) open failed" # #f)'" - this is probably a transient error, see discussion at . ## References - - blog post on Guix - - deploying a blog - - deploying on Digital Ocean Guix->Guix - - deploying on Digital Debian->Guix - - example config ================================================================================ Best, Dmitry.