{"id":416,"date":"2009-04-02T20:21:46","date_gmt":"2009-04-02T17:21:46","guid":{"rendered":"http:\/\/www.void.gr\/kargig\/blog\/?p=416"},"modified":"2009-05-14T21:23:21","modified_gmt":"2009-05-14T18:23:21","slug":"howto-remotely-install-debian-over-gentoo-without-physical-access","status":"publish","type":"post","link":"https:\/\/www.void.gr\/kargig\/blog\/2009\/04\/02\/howto-remotely-install-debian-over-gentoo-without-physical-access\/","title":{"rendered":"HOWTO remotely install debian over gentoo without physical access"},"content":{"rendered":"<p><strong><em>The Task<\/em><\/strong><br \/>\nLast year, me and <a href=\"http:\/\/autoverse.net\/\">comzeradd<\/a> set up a <a href=\"http:\/\/www.gentoo.org\">Gentoo<\/a> server for <a href=\"http:\/\/www.hellug.gr\">HELLUG<\/a> according to our plot to help Gentoo conquer the world. Unfortunately Gentoo is out of HELLUG&#8217;s administration policy, all servers must be <a href=\"http:\/\/www.debian.org\">Debian<\/a>. We didn&#8217;t know that, so after a small flame :), we decided that we should take back the server to somebody&#8217;s home and re-install Debian over it, the problem was that the server was located at <a href=\"http:\/\/www.uoa.gr\/uoagr\/ch03.htm\">University of Athens campus<\/a> which is a bit far from downtown Athens where comzeradd lives. I also live 500km away so we were pretty much stuck. Months passed and nobody actually had enough free time to go to <a href=\"http:\/\/www.uoa.gr\">UOA<\/a>&#8216;s campus and  take the server to their house. &#8230;In the meantime <a href=\"http:\/\/manjiki.blogspot.com\/\">manji<\/a> joined us as an extra root for the server.<\/p>\n<p>One Saturday night while chatting at IRC (what else could we be doing on saturday night ??) we had an inspiration, why not install Debian remotely, without taking the server home. Even if everything got eventually borked it couldn&#8217;t get any worse than going there, taking the server home and fixing it, just like we would do any way. So we gathered on a new IRC channel with some more friends that are really good with Debian and started the conversion progress.<\/p>\n<p><strong><em>The Server<\/em><\/strong><br \/>\nThe interesting part about the server was that it had 2x250Gb IDE disks. The Gentoo setup had these disks partitioned to 4 software raid devices + swap partitions.<br \/>\n<!--more--><br \/>\n<code>(Gentoo) # fdisk -l<br \/>\nDisk \/dev\/hda: 250.0 GB, 250059350016 bytes<br \/>\n 255 heads, 63 sectors\/track, 30401 cylinders<br \/>\n Units = cylinders of 16065 * 512 = 8225280 bytes<br \/>\n Disk identifier: 0x431bd7b7<br \/>\n Device Boot      Start         End      Blocks   Id  System<br \/>\n \/dev\/hda1   *           1           6       48163+  fd  Linux raid autodetect<br \/>\n \/dev\/hda2               7         130      996030   82  Linux swap \/ Solaris<br \/>\n \/dev\/hda3             131       27964   223576605   fd  Linux raid autodetect<br \/>\n \/dev\/hda4           27965       30401    19575202+   5  Extended<br \/>\n \/dev\/hda5           27965       29183     9791586   fd  Linux raid autodetect<br \/>\n \/dev\/hda6           29184       30401     9783553+  fd  Linux raid autodetect<br \/>\nDisk \/dev\/hdb: 250.0 GB, 250059350016 bytes<br \/>\n 255 heads, 63 sectors\/track, 30401 cylinders<br \/>\n Units = cylinders of 16065 * 512 = 8225280 bytes<br \/>\n Disk identifier: 0x00000000<br \/>\n    Device Boot      Start         End      Blocks   Id  System<br \/>\n \/dev\/hdb1   *           1           6       48163+  fd  Linux raid autodetect<br \/>\n \/dev\/hdb2               7         130      996030   82  Linux swap \/ Solaris<br \/>\n \/dev\/hdb3             131       27964   223576605   fd  Linux raid autodetect<br \/>\n \/dev\/hdb4           27965       30401    19575202+   5  Extended<br \/>\n \/dev\/hdb5           27965       29183     9791586   fd  Linux raid autodetect<br \/>\n \/dev\/hdb6           29184       30401     9783553+  fd  Linux raid autodetect<br \/>\n<\/code><\/p>\n<p>md1 was RAID1 with hda1+hdb1 for \/boot\/<br \/>\nmd3 was RAID1 with hda3+hdb3 for \/<br \/>\nmd5 was RAID1 with hda5+hdb5 for \/var\/db\/<br \/>\nmd6 was RAID0 with hda6+hdb6 for \/usr\/portage\/<\/p>\n<p><strong><em>SUMMARY<\/em><\/strong><br \/>\nWhat we had to do was:<br \/>\nA)break all RAID1 and RAID0 devices, set all hdbX partitions as faulty and remove them from the RAID.<br \/>\nB)repartition hdb, create new RAID1 arrays with LVM on top and format the new partitions<br \/>\nC)install debian on hdb<br \/>\nD)configure grub to boot debian<\/p>\n<p><strong><em>HOWTO<\/em><\/strong><br \/>\nIn order to be extra cautious for every command we gave we all logged in inside Gentoo and one of us set up a &#8220;screen&#8221; and the others joined that screen session using <code># screen -x<\/code><\/p>\n<p>Now everything that one typed could be seen realtime by all the others.<br \/>\n<strong><em>PART A) RAID Manipulation<\/em><\/strong><br \/>\nCheck the status of the raid devices: <code>cat \/proc\/mdstat<\/code><br \/>\nCopy \/usr\/portage\/ to \/ as \/usr\/portage2 so that we can completely delete md6 (RAID0).<br \/>\n<code>(Gentoo) # mkdir \/usr\/portage2\/<br \/>\n(Gentoo) # cp -rp \/usr\/portage\/* \/usr\/portage2\/<br \/>\n(Gentoo) # umount \/usr\/portage<br \/>\n(Gentoo) # mv \/usr\/portage2 \/usr\/portage<br \/>\n(Gentoo) # mdadm --stop \/dev\/md6<br \/>\n<\/code><br \/>\nReminder: There&#8217;s no need to <code>mdadm --remove \/dev\/md6 \/dev\/hdb6<\/code> since RAID0 can&#8217;t live with only one disk. The mdadm &#8211;remove command does nothing at all for RAID0.<\/p>\n<p>We continued by breaking the rest of the RAID1 arrays.<br \/>\n<code>(Gentoo) # mdadm --set-faulty \/dev\/md1 \/dev\/hdb1<br \/>\n(Gentoo) # mdadm --remove \/dev\/md1 \/dev\/hdb1<br \/>\n(Gentoo) # mdadm --set-faulty \/dev\/md3 \/dev\/hdb3<br \/>\n(Gentoo) # mdadm --remove \/dev\/md3 \/dev\/hdb3<br \/>\n(Gentoo) # mdadm --set-faulty \/dev\/md5 \/dev\/hdb5<br \/>\n(Gentoo) # mdadm --remove \/dev\/md5 \/dev\/hdb5<\/code><\/p>\n<p>Checked on the current RAID status. Every RAID array should have been failed and with only one disk:<br \/>\n<code>(Gentoo) # cat \/proc\/mdstat<br \/>\n Personalities : [raid0] [raid1]<br \/>\n md1 : active raid1 hda1[0]<br \/>\n       48064 blocks [2\/1] [U_]<br \/>\n md3 : active raid1 hda3[0]<br \/>\n       223576512 blocks [2\/1] [U_]<br \/>\n md5 : active raid1 hda5[0]<br \/>\n       9791488 blocks [2\/1] [U_]<br \/>\n done<\/code><\/p>\n<p>We were now ready to repartition \/dev\/hdb.<br \/>\n<strong><em>PART B) Repartition hdb<\/em><\/strong><br \/>\n<code>(Gentoo) #  fdisk hdb<\/code><br \/>\nCreated 3 partitions: a) 128Mb for \/boot, b) 1Gb for Swap and c) the rest for LVM<br \/>\nIn order to re-read the partition table we issue:<br \/>\n<code>(Gentoo) # hdparm -z \/dev\/hdb<\/code><br \/>\nCheck if everything is OK<br \/>\n<code>(Gentoo) # cat \/proc\/partitions  | grep hdb<\/code><\/p>\n<p><strong><em>PART C) Install Debian on \/dev\/hdb<\/em><\/strong><br \/>\nWe first had to install the proper tools to do that. In order to create LVM partitions we needed the lvm userspace tools:<br \/>\n<code>(Gentoo) # emerge -avt lvm2<\/code><br \/>\nThen we needed to install the tools to create the Debian system, the package is called debootstrap.<br \/>\n<code>(Gentoo) # emerge -avt debootstrap<\/code><br \/>\nCreated the new RAID1 arrays:<br \/>\n<code>(Gentoo) # mdadm --create \/dev\/md11 --level=1 -n 2 \/dev\/hdb1 missing<br \/>\n(Gentoo) # mdadm --create \/dev\/md12 --level=1 -n 2 \/dev\/hdb2 missing<br \/>\n(Gentoo) # mdadm --create \/dev\/md13 --level=1 -n 2 \/dev\/hdb3 missing<\/code><br \/>\nChecked the new RAID arrays:<br \/>\n<code>(Gentoo) # cat \/proc\/mdstat<\/code><br \/>\nCreated some basic LVM partitions on top of md13. We didn&#8217;t use the whole space of hdb3 because we are going to create more partitions when and where we need to in the future:<br \/>\n<code>(Gentoo) # pvcreate \/dev\/md13<br \/>\n(Gentoo) # vgcreate local \/dev\/md13<br \/>\n(Gentoo) # vgdisplay<br \/>\n(Gentoo) # lvcreate -n root -L 10G local<br \/>\n(Gentoo) # lvcreate -n tmp -L 2G local<br \/>\n(Gentoo) # lvcreate -n home -L 20G local<\/code><\/p>\n<p>Formatted the LVM partitions and mounted them someplace.<br \/>\n<code>(Gentoo) # mkfs.ext2 \/dev\/md11<br \/>\n(Gentoo) # mkfs.ext3 \/dev\/local\/root<br \/>\n(Gentoo) # mkfs.ext3 \/dev\/local\/home<br \/>\n(Gentoo) # mkfs.ext3 \/dev\/local\/tmp<br \/>\n(Gentoo) # tune2fs -c 0 -i 0 \/dev\/local\/root<br \/>\n(Gentoo) # tune2fs -c 0 -i 0 -m 0 \/dev\/local\/home<br \/>\n(Gentoo) # tune2fs -c 0 -i 0 \/dev\/local\/tmp<br \/>\n(Gentoo) # mkdir \/mnt\/newroot<br \/>\n(Gentoo) # mkdir \/mnt\/newroot\/{boot,home,tmp}<br \/>\n(Gentoo) # mount \/dev\/local\/root \/mnt\/newroot\/<br \/>\n(Gentoo) # mount \/dev\/md11 \/mnt\/newroot\/boot\/<br \/>\n(Gentoo) # mount \/dev\/local\/home \/mnt\/newroot\/home\/<br \/>\n(Gentoo) # mount \/dev\/local\/tmp  \/mnt\/newroot\/tmp\/<\/code><\/p>\n<p>Then it was time to install Debian on \/mnt\/newroot using debootstrap:<br \/>\n<code>(Gentoo) # debootstrap --arch=amd64 lenny \/mnt\/newroot\/ http:\/\/ftp.ntua.gr\/debian<\/code><\/p>\n<p>After a while, when it was over we chrooted to the Debian install:<br \/>\n<code>(Gentoo) # cd \/mnt\/newroot\/<br \/>\n(Gentoo) # mount -o bind \/dev dev\/<br \/>\n(Gentoo) # mount -t proc proc proc<br \/>\n(Gentoo) # chroot . \/bin\/bash<br \/>\n(Debian) #<\/code><\/p>\n<p>We created the network config,<br \/>\n<code>(Debian) # vi \/etc\/network\/interfaces<br \/>\n(contents)<br \/>\nauto eth0<br \/>\niface eth0 inet static<br \/>\n        address X.Y.Z.W<br \/>\n        netmask 255.255.255.240<br \/>\n        gateway A.B.C.D<br \/>\nauto lo<br \/>\niface lo inet loopback<br \/>\n(\/contents)<\/code><\/p>\n<p>We fixed \/etc\/apt\/sources.list:<br \/>\n<code>(Debian) # vim \/etc\/apt\/sources.list<br \/>\n(contents)<br \/>\ndeb http:\/\/ftp.ntua.gr\/debian lenny main contrib non-free<br \/>\ndeb http:\/\/volatile.debian.org\/debian-volatile lenny\/volatile main contrib non-free<br \/>\ndeb http:\/\/ftp.informatik.uni-frankfurt.de\/debian-security\/ lenny\/updates main contrib<br \/>\ndeb-src http:\/\/security.debian.org\/ lenny\/updates main contrib<br \/>\n(\/contents)<\/code><\/p>\n<p>We upgraded the current system and installed various usefull packages.<br \/>\n<code>(Debian) # aptitude update<br \/>\n(Debian) # aptitude full-upgrade<br \/>\n(Debian) # aptitude install locales<br \/>\n(Debian) # vi \/etc\/locale.gen<br \/>\n(contents)<br \/>\nel_GR ISO-8859-7<br \/>\nel_GR.UTF-8 UTF-8<br \/>\nen_US.UTF-8 UTF-8<br \/>\n(\/contents)<br \/>\n(Debian) # locale-gen<br \/>\n(Debian) # aptitude install openssh-server<br \/>\n(Debian) # aptitude install linux-image-2.6.26-1-amd64<br \/>\n(Debian) # aptitude install lvm2 mdadm<br \/>\n(Debian) # aptitude purge citadel-server exim4+<br \/>\n(Debian) # aptitude purge libcitadel1<br \/>\n(Debian) # aptitude install grub less<br \/>\n(Debian) # vi \/etc\/kernel-img.conf<br \/>\n(contents)<br \/>\ndo_symlinks = Yes<br \/>\ndo_initrd = yes<br \/>\npostinst_hook = update-grub<br \/>\npostrm_hook   = update-grub<br \/>\n(\/contents)<br \/>\n(Debian) # vi \/etc\/hosts<br \/>\n(Debian) # vi \/etc\/fstab<br \/>\n(contents)<br \/>\nproc            \/proc   proc    defaults                0       0<br \/>\n\/dev\/local\/root \/       ext3    defaults,noatime        0       0<br \/>\n\/dev\/local\/tmp  \/tmp    ext3    defaults,noatime,noexec 0       0<br \/>\n\/dev\/local\/home \/home   ext3    defaults,noatime        0       0<br \/>\n\/dev\/md11       \/boot   ext2    defaults                0       0<br \/>\n\/dev\/md12       none    swap    sw                      0       0<br \/>\n(\/contents)<br \/>\n(Debian) # update-initramfs -u -k all<br \/>\n(Debian) # passwd<\/code><\/p>\n<p>And we logged out of Debian to go back to Gentoo to fix grub.<br \/>\n<strong><em>PART D) Configure Grub on Gentoo (hda) to boot Debian \/em><\/em><\/strong><br \/>\nSince we didn&#8217;t have physical access to the server we had to boot Debian by using Grub on hda, where Gentoo&#8217;s Grub was.<br \/>\nWe copied the kernel from debian:<br \/>\n<code>(Gentoo) # cp \/mnt\/newroot\/boot\/vmlinuz-2.6.26-1-amd64 \/boot\/<br \/>\n(Gentoo) # cp \/mnt\/newroot\/boot\/initrd.img-2.6.26-1-amd64 \/boot\/<\/code><br \/>\nWe edited grub config to add an entry for debian and set it as default! Otherwise the system would reboot back to Gentoo.<br \/>\n<code>(Gentoo) # vi \/boot\/grub\/menu.lst<br \/>\n(contents)<br \/>\ndefault 1<br \/>\nfallback 0<br \/>\ntimeout 10<br \/>\ntitle=Gentoo<br \/>\nroot(hd0,0)<br \/>\nkernel \/gentoo-kernel ........<br \/>\ninitrd \/gentoo-initrd<br \/>\ntitle=debian (hdb)<br \/>\nroot(hd1,0)<br \/>\nkernel \/vmlinuz-2.6.26-1-amd64 root=\/dev\/mapper\/local-root ro<br \/>\ninitrd \/initrd.img-2.6.26-1-amd64<br \/>\n(\/contents)<\/code><\/p>\n<p>Then we unmounted all partitions from \/mnt\/newroot\/, we crossed our fingers and rebooted!<br \/>\nVoila! We could  ssh to our new debian install \ud83d\ude42 And there was much rejoicing&#8230;<\/p>\n<p>What was left to be done, was to mount the old RAID arrays of Gentoo (md1,md3) take backups of configs and place them inside Debian. Then we could kill the old RAID arrays entirely, recreate partitions on hda and add those to RAID arrays of Debian (md11,md12,md13). Of course there should be special attention to re-install grub seperately on hda and hdb!! <\/p>\n<p><strong><em>Debian-izing the disk with the Gentoo<\/em><\/strong><br \/>\nAfter a couple of days I decided to move on, kill Gentoo completely and make Debian use both disks.<br \/>\nFirst thing I did was to stop the old RAID1 arrays.<br \/>\n<code>(Debian) # mdadm --stop \/dev\/md6<br \/>\n(Debian) # mdadm --stop \/dev\/md3<br \/>\n(Debian) # mdadm --stop \/dev\/md1<\/code><br \/>\nThen I repartitioned \/dev\/sda (the Debian kernel uses the modules that all disks appear as \/dev\/sdX) and created partitions the same size as \/dev\/sdb&#8217;s.:<br \/>\n<code>(Debian) # fdisk \/dev\/sda<\/code><br \/>\nThat was the point of no-return \ud83d\ude42 <\/p>\n<blockquote><p>There&#8217;s a risk involved here. The original sda1 was 64Mb and the newer sdb1 was 128Mb. I couldn&#8217;t add sda1 to md11 without extending the sda1 partition. If completely scratched \/dev\/sda1 to create a new partition of 128Mb in size and a power failure occurred while this process was going on, the server could become unbootable, because it wouldn&#8217;t find a proper sda1 to boot from. If someone wanted to minimize that risk, he would have to repartition sda, extend sda1 to the size of sdb1, extend the old \/dev\/md1 to fit the new sda1 size and extend the fs beneath it. Of course there is still a problem of what would happend if a power failure occured while extending the fs&#8230;so I chose to skip that &#8220;risk&#8221; and pretend it&#8217;s not there \ud83d\ude42<\/p><\/blockquote>\n<p>Re-read the partition table:<br \/>\n<code>(Debian) # hdparm -z \/dev\/sda<\/code><br \/>\nAdd the new partitions to the Debian RAID1 arrays.<br \/>\nThe first array I fixed was the \/boot RAID1 array because it would only take some seconds to sync and minimizes the risk of a power failure while there&#8217;s no boot manager on the MBR and the rest of partitions are still syncing:<br \/>\n<code>(Debian) # mdadm --add \/dev\/md11 \/dev\/sda1<\/code><br \/>\nWhen the sync is over I installed Grub on both sda1 and sdb1:<br \/>\n<code>(Debian) # grub<br \/>\ngrub> device (hd0) \/dev\/sda<br \/>\ngrub> root (hd0,0)<br \/>\n Filesystem type is ext2fs, partition type 0xfd<br \/>\ngrub> setup (hd0)<br \/>\n Checking if \"\/boot\/grub\/stage1\" exists... no<br \/>\n Checking if \"\/grub\/stage1\" exists... yes<br \/>\n Checking if \"\/grub\/stage2\" exists... yes<br \/>\n Checking if \"\/grub\/e2fs_stage1_5\" exists... yes<br \/>\n[...snip...]<br \/>\ngrub> quit<br \/>\n(Debian) # grub<br \/>\ngrub> device (hd1) \/dev\/sdb<br \/>\ngrub> root (hd1,0)<br \/>\n Filesystem type is ext2fs, partition type 0xfd<br \/>\ngrub> setup (hd1)<br \/>\n Checking if \"\/boot\/grub\/stage1\" exists... no<br \/>\n Checking if \"\/grub\/stage1\" exists... yes<br \/>\n Checking if \"\/grub\/stage2\" exists... yes<br \/>\n Checking if \"\/grub\/e2fs_stage1_5\" exists... yes<br \/>\n[...snip...]<br \/>\ngrub> quit<\/code><\/p>\n<p>Then we fix the rest RAID1 arrays:<br \/>\n<code>(Debian) # mdadm --add \/dev\/md12 \/dev\/sda2<br \/>\n(Debian) # mdadm --add \/dev\/md13 \/dev\/sda3<\/code><br \/>\nThe last sync took a while (approx 1h).<\/p>\n<p>Make some final checks:<br \/>\n<em>a) Check that grub is installed on every disk&#8217;s MBR<\/em><br \/>\n<code>(Debian) # dd if=\/dev\/sda of=test.file bs=512 count=1<br \/>\n1+0 records in<br \/>\n1+0 records out<br \/>\n512 bytes (512 B) copied, 5.4721e-05 s, 9.4 MB\/s<br \/>\n(Debian) # grep -i grub test.file<br \/>\nBinary file test.file matches<br \/>\n(Debian) # dd if=\/dev\/sdb of=test2.file bs=512 count=1<br \/>\n1+0 records in<br \/>\n1+0 records out<br \/>\n512 bytes (512 B) copied, 5.4721e-05 s, 9.4 MB\/s<br \/>\n(Debian) # grep -i grub test2.file<br \/>\nBinary file test2.file matches<\/code><\/p>\n<p><em>b) Make sure you have the correct entries in grub config:<\/em><br \/>\n<code>(Debian) # cat \/boot\/grub\/menu.lst<br \/>\ndefault 0<br \/>\ntimeout 10<br \/>\ntitle=debian<br \/>\nroot(hd0,0)<br \/>\nkernel \/vmlinuz-2.6.26-1-amd64 root=\/dev\/mapper\/local-root ro<br \/>\ninitrd \/initrd.img-2.6.26-1-amd64<\/code><\/p>\n<p><em>c) Check the RAID1 arrays<\/em><br \/>\n<code>(Debian) # cat \/proc\/mdstat<br \/>\nPersonalities : [raid0] [raid1]<br \/>\nmd13 : active raid1 sdb3[0] sda3[1]<br \/>\n      243071360 blocks [2\/2] [UU]<br \/>\nmd12 : active (auto-read-only) raid1 sdb2[0] sda2[1]<br \/>\n      987904 blocks [2\/2] [UU]<br \/>\nmd11 : active raid1 sdb1[0] sda1[1]<br \/>\n      136448 blocks [2\/2] [UU]<br \/>\nunused devices: <none><\/none><\/code><\/p>\n<p>That&#8217;s all. Only a reboot will show whether everything went right.<br \/>\n<strong>Good luck!<\/strong><\/p>\n<p>P.S. The struggle of Gentoo taking over the world is not over. We may have lost a battle but we haven&#8217;t lost the war!<\/p>\n<p>References:<br \/>\na) <a href=\"http:\/\/www.underhanded.org\/papers\/debian-conversion\/remotedeb.html\">HOWTO &#8211; Install Debian Onto a Remote Linux System<\/a><br \/>\nPretty old but was the base of our efforts<br \/>\nb) <a href=\"http:\/\/www.epimetrics.com\/topics\/one-page?page_id=421&#038;topic=Bit-head%20Stuff&#038;page_topic_id=120#test\">RAID1 on Debian Sarge<\/a><br \/>\nc) <a href=\"http:\/\/www.debian-administration.org\/articles\/424\">growing ext3 partition on RAID1 without rebooting<\/a><br \/>\nd) <a href=\"http:\/\/togami.com\/~warren\/guides\/remoteraidcrazies\/\">Remote Conversion to Linux Software RAID-1 for Crazy Sysadmins HOWTO<\/a><br \/>\ne) <a href=\"http:\/\/www.gentoo.org\/doc\/en\/lvm2.xml\">Gentoo LVM2 installation<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Task Last year, me and comzeradd set up a Gentoo server for HELLUG according to our plot to help Gentoo conquer the world. Unfortunately Gentoo is out of HELLUG&#8217;s administration policy, all servers must be Debian. We didn&#8217;t know that, so after a small flame :), we decided that we should take back the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"footnotes":""},"categories":[12,3],"tags":[33,53,601,52,59,57,58,54,56,55,51],"class_list":["post-416","post","type-post","status-publish","format-standard","hentry","category-gentoo","category-linux","tag-debian","tag-debootstrap","tag-gentoo","tag-grub","tag-howto","tag-mdadm","tag-no-psysical-access","tag-raid","tag-raid0","tag-raid1","tag-remote-install"],"aioseo_notices":[],"views":22519,"_links":{"self":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/comments?post=416"}],"version-history":[{"count":23,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/416\/revisions"}],"predecessor-version":[{"id":537,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/416\/revisions\/537"}],"wp:attachment":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/media?parent=416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/categories?post=416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/tags?post=416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}