{"id":2998,"date":"2023-03-13T15:39:56","date_gmt":"2023-03-13T14:39:56","guid":{"rendered":"https:\/\/pmortensen.eu\/world2\/?p=2998"},"modified":"2025-02-03T00:30:11","modified_gmt":"2025-02-02T23:30:11","slug":"arcolinux-23-02-installation-blues","status":"publish","type":"post","link":"https:\/\/pmortensen.eu\/world2\/2023\/03\/13\/arcolinux-23-02-installation-blues\/","title":{"rendered":"ArcoLinux 23.02 installation blues"},"content":{"rendered":"<p>The short version: <a href=\"https:\/\/pmortensen.eu\/world2\/2023\/03\/02\/arcolinux-information-confusion\/\">ArcoLinux<\/a> does not seem to install the required GRUB bootloader (file <em>grubx64.efi<\/em>) on some partitioning schemes, e.g., some combination of separate partitions (completely separate or some shared partitions). Thus the system can not boot. Booting into the newly-installed system by some other means, and running <em>grub-install<\/em> and <em>grub-mkconfig<\/em> fixes the problem.<\/p>\n<p>The used combination was <strong><em>three different partitions<\/em><\/strong> for an 1) <a href=\"https:\/\/en.wikipedia.org\/wiki\/UEFI\">EFI<\/a> partition (with file <em>grubx64.efi<\/em>. Mount point <em>\/boot\/efi<\/em>), 2) boot files partition (e.g., with file <em>vmlinuz-linux<\/em>, file <em>initramfs-linux.img<\/em> and sub folder <em>grub<\/em> with file <em>grub.cfg<\/em>. Mount point <em>\/boot<\/em>), and 3) root file system (\/). It silently fails and the BIOS chooses some other disk to boot from (if there is one)).<\/p>\n<p>Subsequently installing the GRUB boot loader (resulting in the copying of the single file <strong><em>\/boot\/efi\/EFI\/arcolinux\/grubx64.efi<\/em><\/strong> (148 KB, 0.14 MB)) fixes the problem and makes the system bootable (at least starting it directly from within the BIOS, typically by a feature named &#8220;Boot override&#8221; or similar. The default boot location in the BIOS can also be changed, so this isn&#8217;t necessary).<\/p>\n<p>It is still not known what caused this (perhaps a non-standard manual partitioning), but a <strong><em>workaround<\/em><\/strong> is to <strong><em>install another instance of ArcoLinux<\/em><\/strong> (to a separate physical device) and <strong><em>use its automatic detection during creation of its GRUB configuration<\/em><\/strong>. I managed to get a working ArcoLinux system installed on a 16 GB <a href=\"https:\/\/en.wikipedia.org\/wiki\/SD_card\">SD card<\/a> (&#8230;). From its GRUB system the real ArcoLinux could be started&#8230;<\/p>\n<p>With a similar working and non-working system it is much easier to find the real problem by looking for differences.<\/p>\n<h2>The problem<\/h2>\n<p>After successful installation of ArcoLinux on an <a href=\"https:\/\/en.wikipedia.org\/wiki\/M.2\">M.2<\/a> <a href=\"https:\/\/en.wikipedia.org\/wiki\/NVM_Express\">NVMe<\/a> SSD using <a href=\"https:\/\/pmortensen.eu\/world2\/2023\/03\/02\/arcolinux-information-confusion\/\">ISO image \u201carcolinuxl-v23.03.01-x86_64.iso\u201c<\/a>, it couldn&#8217;t be booted:<\/p>\n<p><code>error: file 'vmlinuz-linux' not found<br \/>\nerror: you need to load the kernel first.<br \/>\nPress any key to continue.<\/code><\/p>\n<p>Note that the symptom shown here could be due to an <em>unrelated<\/em> problem with older GRUB versions not being able to boot Linux from M.2 NVMe SSDs. But it may be the first immediate symptom if some older Linux system is already installed and is in use (and ArcoLinux is attempted started from its GRUB menu). In any case, trying to start it directly from the BIOS silently failed (it instead displayed the existing Linux system&#8217;s GRUB menu).<\/p>\n<h2>Partitioning<\/h2>\n<p>Note: I use the old units (1 GB is 1,073,741,824 bytes) throughout, unless otherwise noted.<\/p>\n<style>\n    #someTable .rightAlign {text-align: right;}\n<\/style>\n<table id=\"someTable\">\n<tr>\n<th>#<\/th>\n<th class=\"rightAlign\">Size<\/br> [GB]<\/th>\n<th>File<\/br> system<\/th>\n<th>Mount<\/br> point<\/th>\n<th>Flags<\/th>\n<th>Label<\/th>\n<th>Device<\/th>\n<\/tr>\n<p>    <!-- Template\n    \n\n<tr> \n\n<td>x<\/td>\n\n \n\n<td>X.X<\/td>\n\n \n\n<td>FAT32\/ext4<\/td>\n\n \n\n<td>\/\/<\/td>\n\n \n\n<td>some flag<\/td>\n\n \n\n<td>some label<\/td>\n\n \n\n<td>\/dev\/xxxx<\/td>\n\n <\/tr>\n\n\n    --><\/p>\n<tr>\n<td>1<\/td>\n<td class=\"rightAlign\">0.6<\/td>\n<td>FAT32<\/td>\n<td>\/boot\/efi<\/td>\n<td>boot<\/td>\n<td><\/td>\n<td>\/dev\/nvme0n1p1<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td class=\"rightAlign\">1.0<\/td>\n<td>ext4<\/td>\n<td>\/boot<\/td>\n<td><\/td>\n<td><\/td>\n<td>\/dev\/nvme0n1p2<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td class=\"rightAlign\">136.7<\/td>\n<td>ext4<\/td>\n<td>\/<\/td>\n<td><\/td>\n<td>ArcoLinux<\/td>\n<td>\/dev\/nvme0n1p3<\/td>\n<\/tr>\n<\/table>\n<p>On partition 1, only 160 KB is used (0.03%). It isn&#8217;t clear why 600 MB is recommended. And the ArcoLinux installer <strong><em>insists<\/em><\/strong> on at least 300 MB (it refuses to continue the installation with less than 300 MB). Perhaps it is actually 600 KB?<\/p>\n<p>On partition 2, 119 MB is used (15%).<\/p>\n<p><!-- TABLE\n<code>             #    Size  File    Mount      Flags  Label      Device\n                  [GB]  system  point\n             --------------------------------------------------------------\n             1    0.6   FAT32   \/boot\/efi  boot              \/dev\/nvme0n1p1\n             2    1.0   ext4    \/boot                        \/dev\/nvme0n1p2\n             3  136.7   ext4    \/                 ArcoLinux  \/dev\/nvme0n1p3<\/code>\n--><\/p>\n<p><!--\n\n\n<h2>After installation blues<\/h2>\n\n\n\nXXXXXYY\n--><\/p>\n<h2>Getting a secondary working system<\/h2>\n<p>Here I demonstrate installing the exact same ArcoLinux version on an SD card as that was the most convenient, but it could done on any free drive (say, another SSD drive, rotating rust, or a USB stick).<\/p>\n<p>Note that the partitioning scheme is different from the M.2 SSD attempt. \/boot is part of root (\/), not on a separate partition.<\/p>\n<p>The first partition starts 1 MB in (aligned). The exact numbers are expressed in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/GNU_Parted\">Parted<\/a> command line after the table (though Parted may change them slightly for alignment, etc.).<\/p>\n<p>Note: Partition 4, the separate \/opt, requires at least approx. 270 MB. I used 400 MB (after the first failed attempt).<\/p>\n<p>The numbers in &#8220;Size [MB]&#8221; (second column) are <strong><em>exact<\/em><\/strong> (Parted seems to have aligned everything on 1 MB boundaries; the 511 instead of the specified 512 is probably due to reserved space in the beginning of the disk). &#8220;[new GB]&#8221; is as reported by Parted.<\/p>\n<table id=\"someTable\">\n<tr>\n<th>#<\/th>\n<th>Size<\/br> [GB]<\/th>\n<th>Size<\/br> [MB]<\/th>\n<th>Size<\/br>  [new GB]<\/th>\n<th>File<\/br> system<\/th>\n<th>Mount<\/br> point<\/th>\n<th>Flags<\/th>\n<th>Label<\/th>\n<th>Device<\/th>\n<\/tr>\n<p>    <!-- Template\n    \n\n<tr> \n\n<td>x<\/td>\n\n \n\n<td class=\"rightAlign\">X.X<\/td>\n\n \n\n<td class=\"rightAlign\">X.X<\/td>\n\n \n\n<td class=\"rightAlign\">X.X<\/td>\n\n \n\n<td>FAT32\/ext4<\/td>\n\n \n\n<td>\/\/<\/td>\n\n \n\n<td>some flag<\/td>\n\n \n\n<td>some label<\/td>\n\n \n\n<td>\/dev\/xxxx<\/td>\n\n <\/tr>\n\n\n    --><\/p>\n<tr>\n<td>1<\/td>\n<td class=\"rightAlign\">0.5<\/td>\n<td class=\"rightAlign\">511<\/td>\n<td class=\"rightAlign\">536<\/td>\n<td>FAT32<\/td>\n<td>?<\/td>\n<td>boot, esp<\/td>\n<td><\/td>\n<td>\/dev\/sdb1<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td class=\"rightAlign\">0.3<\/td>\n<td class=\"rightAlign\">256<\/td>\n<td class=\"rightAlign\">0.3<\/td>\n<td>Linux swap<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td>\/dev\/sdb2<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td class=\"rightAlign\">11.7<\/td>\n<td class=\"rightAlign\">11936<\/td>\n<td class=\"rightAlign\">12.5<\/td>\n<td>ext4<\/td>\n<td>\/<\/td>\n<td><\/td>\n<td>root<\/td>\n<td>\/dev\/sdb3<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td class=\"rightAlign\">0.4<\/td>\n<td class=\"rightAlign\">400<\/td>\n<td class=\"rightAlign\">0.4<\/td>\n<td>ext4<\/td>\n<td>\/opt<\/td>\n<td><\/td>\n<td>\/opt<\/td>\n<td>\/dev\/sdb4<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td class=\"rightAlign\">2.0<\/td>\n<td class=\"rightAlign\">2089<\/td>\n<td class=\"rightAlign\">2.2<\/td>\n<td>ext4<\/td>\n<td>\/home<\/td>\n<td><\/td>\n<td>\/home<\/td>\n<td>\/dev\/sdb5<\/td>\n<\/tr>\n<\/table>\n<p><!--\n    Number  Start   End     Size    File system     Name  Flags\n     2      537MB   805MB   268MB   linux-swap(v1)\n     3      805MB   13,3GB  12,5GB  ext4            root\n     4      13,3GB  13,7GB  419MB   ext4\n     5      13,7GB  15,9GB  2190MB  ext4\n--><\/p>\n<h3 id=\"Unit_confusion\">Unit confusion<\/h3>\n<p>Note that there is always some ambiguity whether a size is in the old MB \/ GB (1,048,576 bytes and 1,073,741,824 bytes, respectively) or the new MB \/ GB (1,000,000 bytes (4.9% less) and 1,000,000,000 bytes (7.4% less), respectively). And whether or not the new notation is used or not (say, by a particular tool). MB \/ GB vs. MiB \/ GiB.<\/p>\n<p>This becomes important when the space is tight as on the 16 GB (unit new GB) SD card used here and the numbers must add up (there is about a 1 GB difference in this case). For instance, <a href=\"https:\/\/linux.die.net\/man\/8\/lsblk\">lsblk<\/a> reports in the old units (&#8220;G&#8221; is 1,073,741,824 bytes), 14.9 vs. &#8220;16 GB&#8221; printed on the SD card (is in the new units), 15,931,539,456 bytes = 15.9 in the new units and 14.8 in the old units (for unknown reasons, lsblk <strong><em>rounds it up<\/em><\/strong> to 14.9 (a bug?), even though it is about 14.8374). (The underlying <a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_prime_numbers#The_first_1000_prime_numbers\">prime factors<\/a> different from 2 are 3, 7, and 1447 (product 30387). It is exactly 15193.5 MB in the old units.)<\/p>\n<p>Or in other words, if a tool reports a total size of 14.8 or 14.9 GB for this particular device (SD card), it is in the old units (examples: <em>lsblk<\/em> and <em><a href=\"https:\/\/en.wikipedia.org\/wiki\/Df_(Unix)\">df<\/a><\/em>). Whereas if a tool reports a total size of 15.9 GB, it is in the new units (example: <em>gparted<\/em>). Thus, different tools definitely reports in different units. That only adds to the confusion. Even more confusion is added by the tools sometimes rounding up (e.g., 11.37 rounded up to 12).<\/p>\n<p>To remove the ambiguity for a tool (to positively know what the default or only unit is), tools can be made to print out size and positions in bytes with the right parameter:<\/p>\n<pre class=\"brush: perl; gutter: false; title: ; notranslate\" title=\"\">\r\nsudo parted \/dev\/sdb unit B p\r\n\r\ndf -x squashfs -x tmpfs -x devtmpfs | grep sdb\r\n\r\nlsblk -b -p -e7 | grep sdb\r\n<\/pre>\n<p>Using parameter &#8216;unit B&#8217; (<em>before<\/em> the command, &#8216;p&#8217; (&#8216;print&#8217;) in this case), leaving out <em>-h<\/em>, and using <em>-b<\/em>, respectively.<\/p>\n<p>It also becomes important for alignment. In general, the partitions should be aligned at least 2 MB (old unit) boundaries. For the partitions here, I have used alignment to 32 MB (old unit) boundaries. But note that <em>Parted<\/em> <strong><em>only<\/em><\/strong> aligns if given input in the new units. Thus the desired values in the old units must first be converted to the new units. And then be given to <em>Parted<\/em>&#8230; <\/p>\n<h3>Automating the creation of the partitions<\/h3>\n<p>Using &#8216;Parted&#8217;, everything about the creation of the partitions can be automated from the command line. This makes it especially easy to experiment with different partition strategies. And it makes it repeatable and well proven. Using cheap unused SD cards (at least 16 GB) to experiment with is viable for this purpose (but may not be for any real-world use (risk of wearing down the SD card)).<\/p>\n<p>The following lines can be pasted directly into a command-line window. But a disclaimer: <strong><em>DO IT AT YOUR OWN RISK. First double and triple check the device locations<\/em><\/strong> and use query commands, like, <em>lsblk -p -e7<\/em>, to identify devices (and partitions) by size, etc. Note that adding a new disk device to the system may shift the letters, e.g., from <em>\/dev\/sdb<\/em> to <em>\/dev\/sdf<\/em>. The example here is for <strong><em>\/dev\/sdb<\/em><\/strong> and may have to be changed to fit your system. Use a text editor to make the substitution (search\/replace), so you don\u2019t make a silly mistake.<\/p>\n<pre class=\"brush: perl; gutter: false; title: ; notranslate\" title=\"\">\r\n# Get information about used disk space\r\n# from other disks \/ Linux installations\r\n#\r\n# For 'df', we may have to mount it first. E.g.:\r\n#\r\n#    sudo mount \/dev\/nvme0n1p3  \/mnt\r\n#    ls -lsatr  \/mnt\r\n#\r\nlsblk -p -e7\r\ndf -h -x squashfs -x tmpfs -x devtmpfs\r\n\r\n  # Results (for the failed installation on the M.2 SDD.\r\n  #          The SD card one is expected to be of \r\n  #          the same size):\r\n  #\r\n  #   ArcoLinux on M.2: 7.8 GB used\r\n\r\n# Information only\r\nsudo parted -s \/dev\/sdb  print\r\n\r\n    # Model: FNK TECH USB CARD READER (scsi)\r\n    # Disk \/dev\/sdb: 15,9GB\r\n    # Sector size (logical\/physical): 512B\/512B\r\n    # Partition Table: msdos\r\n    # Disk Flags:\r\n    #\r\n    # Number  Start   End     Size    Type     File system  Flags\r\n    #  1      51,2kB  15,9GB  15,9GB  primary  fat32\r\n\r\n# Remove existing (a fresh SD card is usually formatted \r\n# with one big partition (formatted as FAT32))\r\nsudo parted -s \/dev\/sdb  rm 1\r\n\r\n# Create a GPT partition table\r\nsudo parted -s \/dev\/sdb mktable gpt\r\n\r\n# Add EFI-Boot (partition 1)\r\n# The underlying value is about 512 MiB, but we need \r\n# to use unit &quot;MB&quot; to be sure of alignment (approx. \r\n# 1.05 times higher)\r\n#\r\nsudo parted -s \/dev\/sdb mkpart primary fat32 0% 537MB\r\nsudo parted -s \/dev\/sdb name 1 EFI-boot\r\n\r\n# Set flags 'boot' and 'esp' (EFI system partition) (partition 1)\r\nsudo parted -s \/dev\/sdb set 1 esp on\r\n\r\n# Add swap (partition 2)\r\n# The underlying value is about 768 MiB, but we need \r\n# to use unit &quot;MB&quot; to be sure of alignment (approx. \r\n# 1.05 times higher)\r\n#\r\nsudo parted -s \/dev\/sdb mkpart primary linux-swap 537MB 805MB\r\nsudo parted -s \/dev\/sdb name 2 Swap\r\n\r\n# Add root (\/) file system (partition 3)\r\n#\r\n# For this SD card: The rest, except the last about 2.4 GB.\r\n#\r\n# \u2018--\u2019: prevents \u2018-2489MiB\u2019 from being interpreted\r\n#       as a command-line option.\r\n#\r\n# The underlying value is about -2489 MiB, but we need \r\n# to use unit &quot;MB&quot; to be sure of alignment (approx. \r\n# 1.05 times higher)\r\n#\r\nsudo parted -s \/dev\/sdb -- mkpart primary ext4 805MB -2610MB\r\nsudo parted -s \/dev\/sdb name 3 root\r\n\r\n# Add '\/Opt' (partition 4)\r\n#\r\n# About 260 GB were used by the ArcoLinux\r\n# installer. Set it to 400 MB.\r\n#\r\n# The underlying value is about -2089 MiB, but we need \r\n# to use unit &quot;MB&quot; to be sure of alignment (approx. \r\n# 1.05 times higher)\r\n#\r\nsudo parted -s \/dev\/sdb -- mkpart primary ext4 -2610MB -2190MB\r\nsudo parted -s \/dev\/sdb -- name 4 \/opt\r\n\r\n# Add '\/home' (partition 5)\r\n#\r\n# About 2 GB.\r\n#\r\nsudo parted -s \/dev\/sdb -- mkpart primary ext4 -2190MB 100%\r\nsudo parted -s \/dev\/sdb -- name 5 \/home\r\n\r\n<\/pre>\n<h3>Alignment blues<\/h3>\n<p>Note that for the negative arguments to Parted, using &#8220;MiB&#8221; will usually result in alignment problems at a later stage (partitions not starting at 1 MB boundaries). For example,<\/p>\n<pre class=\"brush: perl; gutter: false; title: ; notranslate\" title=\"\">\r\nThe resulting partition is not properly aligned for best performance: 26 921 984s % 2048s != 0s\r\n<\/pre>\n<p>Instead, specify the negative arguments to Parted in the new units. Parted will not do automatic alignment for the old units.<\/p>\n<p>For example, instead of &#8220;-2089MiB&#8221;, multiply by 1.0485576, round to the nearest integer and use &#8220;-2190MB&#8221;. For gigabyte, the factor is 1.073741824.<\/p>\n<h3>Running from the SD card works!<\/h3>\n<p>After installation there is about 2.5 GB left. That isn&#8217;t much, but it is sufficient for a working and well-configured system with <a href=\"https:\/\/pmortensen.eu\/world2\/2020\/03\/29\/using-geany\/\">Geany<\/a>, Firefox, and <a href=\"https:\/\/en.wikipedia.org\/wiki\/FileZilla\">FileZilla<\/a>.<\/p>\n<h2>Analysis<\/h2>\n<p><!-- Expand this section --> <\/p>\n<p><!--\nCheck if XXX:\n--><\/p>\n<p>First mount the EFI partition.<\/p>\n<p><!--\n[code language=\"perl\" gutter=\"false\"]\nXXXX\n[\/code]\n--><\/p>\n<p>Conclusion: The EFI partition is completely empty. GRUB hasn&#8217;t installed any files there.<\/p>\n<h2>The fix<\/h2>\n<p>Procedure for fixing the GRUB problem:<\/p>\n<p>This presumes the installed ArcoLinux system on the M.2 SSD can be booted into. For example, using the GRUB menu of the SD card system (described above; that is what I used) or from a <strong><em>GRUB rescue prompt<\/em><\/strong> using, for example, a USB stick.<br \/>\nAn alternative to this procedure is using <a href=\"https:\/\/en.wikipedia.org\/wiki\/Chroot\">chroot<\/a> while booted into some other Linux system, e.g., from a USB stick.<\/p>\n<p>After logging in, in a terminal window:<\/p>\n<pre class=\"brush: perl; gutter: false; title: ; notranslate\" title=\"\">\r\n# First mount the boot partition (the second partition) \r\n# at \/boot (with files 'vmlinuz-linux' and 'initrd.img')\r\n#\r\nsudo mount \/dev\/nvme0n1p2  \/boot\r\n\r\n# Then mount the EFI partition (the first partition) \r\n# at \/boot\/efi (with folder &quot;EFI\/arcolinux&quot; and \r\n# file &quot;grubx64.efi&quot; therein)\r\n#\r\nsudo mount \/dev\/nvme0n1p1  \/boot\/efi\r\n\r\n# Complete the GRUB installation:\r\n#\r\n# Install the (GRUB) boot loader, \r\n# &lt;\/boot\/efi\/EFI\/arcolinux\/grubx64.efi&gt; \r\n# (&lt;EFI\/arcolinux\/grubx64.efi&gt; on \r\n# the partition).\r\n#\r\n# This should result in the appearance of file \r\n# &lt;\/boot\/efi\/EFI\/arcolinux\/grubx64.efi&gt;\r\n#\r\nsudo grub-install \/dev\/nvme0n1 --target=x86_64-efi\r\n\r\n# Update the GRUB configuration file (defining \r\n# the GRUB menu items)\r\n#\r\nsudo grub-mkconfig -o \/boot\/grub\/grub.cfg\r\n<\/pre>\n<p>Reboot and enter the BIOS. There should be a <strong><em>new entry<\/em><\/strong> that can be used to boot into the M.2 SSD ArcoLinux system. For example, <em>&#8220;arcolinux (M.2_2: KIOXIA-EXERIA G2 SSD)&#8221;<\/em>.<\/p>\n<p><!--\n\n\n<h2>XP64_NEW display blues<\/h2>\n\n\n\nXXX\n--><\/p>\n<p><!--\n\n\n<h2>A SD card to the rescue<\/h2>\n\n\n\nNote that about 250 MB is used during installation in \/opt. Thus, if it is on a separate partition (as in the example, here)\n--><\/p>\n<h2>References<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.gnu.org\/software\/parted\/manual\/parted.html\">Parted user manual<\/a> (HTML)<\/li>\n<li><a href=\"https:\/\/www.gnu.org\/manual\/\">GNU manuals<\/a><\/li>\n<li><a href=\"https:\/\/www.gnu.org\/software\/grub\/manual\/grub\/grub.html\">GRUB manual<\/a> (HTML)<\/li>\n<\/ul>\n<p><!-- End of blog post--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The short version: ArcoLinux does not seem to install the required GRUB bootloader (file grubx64.efi) on some partitioning schemes, e.g., some combination of separate partitions (completely separate or some shared partitions). Thus the system can not boot. Booting into the &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/pmortensen.eu\/world2\/2023\/03\/13\/arcolinux-23-02-installation-blues\/\"> <span class=\"screen-reader-text\">ArcoLinux 23.02 installation blues<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[39,23],"tags":[],"_links":{"self":[{"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/posts\/2998"}],"collection":[{"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/comments?post=2998"}],"version-history":[{"count":226,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/posts\/2998\/revisions"}],"predecessor-version":[{"id":5242,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/posts\/2998\/revisions\/5242"}],"wp:attachment":[{"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/media?parent=2998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/categories?post=2998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pmortensen.eu\/world2\/wp-json\/wp\/v2\/tags?post=2998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}