unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* feedback as solicited by Guix manual (Section 7.1.5)
@ 2016-05-30  0:45 Ethan Stefan Day
  2016-05-31 15:58 ` Leo Famulari
  2016-05-31 16:19 ` feedback as solicited by Guix manual (Section 7.1.5) Ludovic Courtès
  0 siblings, 2 replies; 18+ messages in thread
From: Ethan Stefan Day @ 2016-05-30  0:45 UTC (permalink / raw)
  To: guix-devel

Hello,

I just got finished setting up GuixSD on one of these
<https://www.thinkpenguin.com/gnu-linux/penguin-adelie-gnu-linux-laptop>, to
use as a fun/hacking box.  I hit a bump with partitioning the drive, but
managed to figure it out.  The Guix manual refers to the Parted manual
for an overview of partitioning, but the Parted manual no longer
provides that and instead references some other manual without providing
a link.  It was rather comical:

"Error, no bios_grub partition.  Grub not installed."
"Oh, well I made the root drive bootable.  Lets just reboot and see what
happens."
...
"BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP..."

I am running Gnome, and aside from video tearing and Icecat not
appearing in the activities view, things seem to be working fine.  I'll
be looking for ways to contribute once I have a better understanding of
the system.  Thanks for putting this together, and a particular thanks
to whoever packaged GHC (I have read that bootstrapping it can be tricky).

-Ethan Day

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-30  0:45 feedback as solicited by Guix manual (Section 7.1.5) Ethan Stefan Day
@ 2016-05-31 15:58 ` Leo Famulari
  2016-05-31 16:31   ` Matthew Jordan
  2016-05-31 16:19 ` feedback as solicited by Guix manual (Section 7.1.5) Ludovic Courtès
  1 sibling, 1 reply; 18+ messages in thread
From: Leo Famulari @ 2016-05-31 15:58 UTC (permalink / raw)
  To: Ethan Stefan Day; +Cc: guix-devel

On Sun, May 29, 2016 at 08:45:18PM -0400, Ethan Stefan Day wrote:
> Hello,
> 
> I just got finished setting up GuixSD on one of these
> <https://www.thinkpenguin.com/gnu-linux/penguin-adelie-gnu-linux-laptop>, to
> use as a fun/hacking box.  I hit a bump with partitioning the drive, but
> managed to figure it out.  The Guix manual refers to the Parted manual
> for an overview of partitioning, but the Parted manual no longer
> provides that and instead references some other manual without providing
> a link.  It was rather comical:

I found some instructions in the Parted manual, specifically in section
2: Using Parted. If that wasn't helpful, do you think we should link to
manuals for fdisk or cfdisk also or instead?

> 
> "Error, no bios_grub partition.  Grub not installed."
> "Oh, well I made the root drive bootable.  Lets just reboot and see what
> happens."
> ...
> "BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP..."
> 
> I am running Gnome, and aside from video tearing and Icecat not
> appearing in the activities view, things seem to be working fine.  I'll
> be looking for ways to contribute once I have a better understanding of
> the system.  Thanks for putting this together, and a particular thanks
> to whoever packaged GHC (I have read that bootstrapping it can be tricky).
> 
> -Ethan Day
> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-30  0:45 feedback as solicited by Guix manual (Section 7.1.5) Ethan Stefan Day
  2016-05-31 15:58 ` Leo Famulari
@ 2016-05-31 16:19 ` Ludovic Courtès
  1 sibling, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2016-05-31 16:19 UTC (permalink / raw)
  To: Ethan Stefan Day; +Cc: guix-devel

Hi!

Ethan Stefan Day <esday@ethan-stefan.net> skribis:

> I just got finished setting up GuixSD on one of these
> <https://www.thinkpenguin.com/gnu-linux/penguin-adelie-gnu-linux-laptop>, to
> use as a fun/hacking box.  I hit a bump with partitioning the drive, but
> managed to figure it out.  The Guix manual refers to the Parted manual
> for an overview of partitioning, but the Parted manual no longer
> provides that and instead references some other manual without providing
> a link.  It was rather comical:
>
> "Error, no bios_grub partition.  Grub not installed."
> "Oh, well I made the root drive bootable.  Lets just reboot and see what
> happens."
> ...
> "BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP..."

Hmm, I wonder how this happened… but glad you worked around it!

> I am running Gnome, and aside from video tearing and Icecat not
> appearing in the activities view, things seem to be working fine.  I'll
> be looking for ways to contribute once I have a better understanding of
> the system.  Thanks for putting this together, and a particular thanks
> to whoever packaged GHC (I have read that bootstrapping it can be tricky).

Thanks a lot for your feedback, even more so that it feels rather
positive!  ;-)

Ludo’.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-31 15:58 ` Leo Famulari
@ 2016-05-31 16:31   ` Matthew Jordan
  2016-05-31 17:56     ` Leo Famulari
  0 siblings, 1 reply; 18+ messages in thread
From: Matthew Jordan @ 2016-05-31 16:31 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel


Good Day Leo Famulari and everyone,

Since this topic came up I just thought I provide some info and ask some
questions too.

What follows are the steps I took to setup my GuixSD box.  What I'm
wondering is how would I go about contributing this in some way to the
documentation? With some modification of course.

I copied these from my raw notes, I made when was first setting up
GuixSD.  I also have a snippet somewhere about setting up a Libvirt Qemu
VM too.

I am just presenting this cause I had to look around a lot, such as the
Gentoo Installation Manual, and Arch Linux manuals in addition to the
Parted and Guix Manuals when I attempted my first install.  Just thought
it would be a good idea to perhaps have some solid example/steps in the
Guix Manual for the installation.

================================================================================

$ ip link show
$ ip link set ens3 up
$ dhclient -v ens3
$ ping -c 4 gnu.org

Paritioning plan
Assumming disk is 20GiB
Bootloader 2MiB
/boot 300MiB ext2/4
Swap 1GiB
/ (rest of disk space) ext4

$ lsblk
Start parted shell
$ parted -a optimal /dev/sda
(parted) unit MiB
(parted) mklabel gpt
(parted) mkpart primary 1MiB 3MiB
(parted) name 1 grub
(parted) set 1 bios_grub on
(parted) print
(parted) mkpart primary 3MiB 303MiB
(parted) name 2 boot
(parted) print

Calculation on host with zsh shell
$ ((mib = 1 * (1024 ** 1)))
$ print ${mib}
1024
$ print $((mib + 303))
1327

(parted) mkpart primary 303MiB 1327MiB
(parted) name 3 swap
(parted) print
(parted) mkpart primary 1327MiB -1
(parted) name 4 root
(parted) set 2 boot on
(parted) print
(parted) quit

$ lsblk
$ mkfs.ext4 /dev/sda2
$ mkswap /dev/sda3
$ mkfs.ext4 /dev/sda4
$ lsblk -f

$ lsblk
$ mount /dev/sda4 /mnt
$ mkdir /mnt/boot
$ mount /dev/sda2 /mnt/boot
$ df -hT

$ herd start cow-store /mnt
$ mkdir /mnt/etc
$ ls /etc/configuration # optional
$ cp /etc/configuration/bare-bones.scm /mnt/etc/config.scm
$ zile /mnt/etc/config.scm

$ mount --bind /mnt/tmp /tmp
$ swapon /dev/sda3
$ guix system init /mnt/etc/config.scm /mnt
$ umount /tmp
$ swapoff /dev/sd3
$ shutdown

================================================================================

Cheers,

-- 
Matthew Jordan
Sent with my mu4e

Leo Famulari writes:

> On Sun, May 29, 2016 at 08:45:18PM -0400, Ethan Stefan Day wrote:
>> Hello,
>> 
>> I just got finished setting up GuixSD on one of these
>> <https://www.thinkpenguin.com/gnu-linux/penguin-adelie-gnu-linux-laptop>, to
>> use as a fun/hacking box.  I hit a bump with partitioning the drive, but
>> managed to figure it out.  The Guix manual refers to the Parted manual
>> for an overview of partitioning, but the Parted manual no longer
>> provides that and instead references some other manual without providing
>> a link.  It was rather comical:
>
> I found some instructions in the Parted manual, specifically in section
> 2: Using Parted. If that wasn't helpful, do you think we should link to
> manuals for fdisk or cfdisk also or instead?
>
>> 
>> "Error, no bios_grub partition.  Grub not installed."
>> "Oh, well I made the root drive bootable.  Lets just reboot and see what
>> happens."
>> ...
>> "BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP..."
>> 
>> I am running Gnome, and aside from video tearing and Icecat not
>> appearing in the activities view, things seem to be working fine.  I'll
>> be looking for ways to contribute once I have a better understanding of
>> the system.  Thanks for putting this together, and a particular thanks
>> to whoever packaged GHC (I have read that bootstrapping it can be tricky).
>> 
>> -Ethan Day
>> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-31 16:31   ` Matthew Jordan
@ 2016-05-31 17:56     ` Leo Famulari
  2016-05-31 18:35       ` Matthew Jordan
  0 siblings, 1 reply; 18+ messages in thread
From: Leo Famulari @ 2016-05-31 17:56 UTC (permalink / raw)
  To: Matthew Jordan; +Cc: guix-devel

On Tue, May 31, 2016 at 12:31:16PM -0400, Matthew Jordan wrote:
> What follows are the steps I took to setup my GuixSD box.  What I'm
> wondering is how would I go about contributing this in some way to the
> documentation? With some modification of course.

What parts do you think should be added to our manual? A number of these
steps are already covered in section 7.1 System Installation.

> I am just presenting this cause I had to look around a lot, such as the
> Gentoo Installation Manual, and Arch Linux manuals in addition to the
> Parted and Guix Manuals when I attempted my first install.  Just thought
> it would be a good idea to perhaps have some solid example/steps in the
> Guix Manual for the installation.

Personally, I don't like putting instructions on how to use 3rd party
software in manuals such as ours (or the Gentoo or Arch manuals) unless
the information is very specific to how we use the software.

In my opinion, if there is some deficiency with the 3rd party programs'
documentation, that documentation should be improved.

Otherwise, knowledge is fragmented into a variety of places where it
probably won't be updated as the 3rd party software changes. Also, each
system's manual or wiki will invariably contain some info that is
specific to that system but not declared as such. And the new, external
documentation will probably not be reviewed by the upstream maintainers
for correctness, spreading bad advice across the internet.  Finally, the
upstream manual will *still* not be improved.

On the other hand, we should strive to make our system as easy to
install as possible. So, specific advice is most welcome! :)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-31 17:56     ` Leo Famulari
@ 2016-05-31 18:35       ` Matthew Jordan
  2016-05-31 21:10         ` Ludovic Courtès
  2016-05-31 21:13         ` Ethan Stefan Day
  0 siblings, 2 replies; 18+ messages in thread
From: Matthew Jordan @ 2016-05-31 18:35 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel


I just looked ouver the installation part of the manual.

> What parts do you think should be added to our manual? A number of these
> steps are already covered in section 7.1 System Installation.

That was mostly a copy paste from my notes.  But what I wouldn't mind
seeing in the manual is as follows;

1. Section 7.1.4.2 Networking;

mentions using ifconfig, correct me if I"m wrong but isn't ifconfig
considered deprecated?

In which case iproute2 commands could be used;

$ ip link show
$ ip link set ens3 up

2. Section 7.1.4.3 Disk Partitioning

It would be nice to indicate that you may need additional swap space to
build the various packages that come with the install.  Also sufficient
space under /tmp is needed. In my case I had to bind mount the my tmp
partition from the install target, and turn on the swap to achieve a
successful install. I used these commands to achieve that.

$ mount --bind /mnt/tmp /tmp
$ swapon /dev/sda3

> Personally, I don't like putting instructions on how to use 3rd party
> software in manuals such as ours (or the Gentoo or Arch manuals) unless
> the information is very specific to how we use the software.
>
> In my opinion, if there is some deficiency with the 3rd party programs'
> documentation, that documentation should be improved.
>
> Otherwise, knowledge is fragmented into a variety of places where it
> probably won't be updated as the 3rd party software changes. Also, each
> system's manual or wiki will invariably contain some info that is
> specific to that system but not declared as such. And the new, external
> documentation will probably not be reviewed by the upstream maintainers
> for correctness, spreading bad advice across the internet.  Finally, the
> upstream manual will *still* not be improved.
>
> On the other hand, we should strive to make our system as easy to
> install as possible. So, specific advice is most welcome! :)

While these are valid points, and I have to say I agree with them. Even
Gentoo and Arch (which are among some of the more challenging distros),
do provide some example/recipe to assist with partitioning.  I'm not
saying we quote someone's manual, but someone might find it useful.

We could always indicate that one should refer to upstream manual for
the latest info, and still provide some steps based on a partitioning
plan. I think this would be very helpful to those who may not be fully
verse in partitioning.  My first time using Gentoo was pretty decent
because of the documentation provided. Here is the appropriate snippet
from my notes;

Paritioning plan
Assumming disk is 20GiB
Bootloader 2MiB
/boot 300MiB ext2/4
Swap 1GiB
/ (rest of disk space) ext4

$ lsblk
Start parted shell
$ parted -a optimal /dev/sda
(parted) unit MiB
(parted) mklabel gpt
(parted) mkpart primary 1MiB 3MiB
(parted) name 1 grub
(parted) set 1 bios_grub on
(parted) print
(parted) mkpart primary 3MiB 303MiB
(parted) name 2 boot
(parted) print

Calculation on host with zsh shell
$ ((mib = 1 * (1024 ** 1)))
$ print ${mib}
1024
$ print $((mib + 303))
1327

(parted) mkpart primary 303MiB 1327MiB
(parted) name 3 swap
(parted) print
(parted) mkpart primary 1327MiB -1
(parted) name 4 root
(parted) set 2 boot on
(parted) print
(parted) quit

Of course feel free free to accept/reject these ideas, as they are just
suggestions based on my state understanding when I first discovered Guix &
GuixSD.  I like to think of Guix as the next evolution of Linux from
Arch Linux or Gentoo Linux ^_^.

Respectfully,

-- 
Matthew Jordan
Sent with my mu4e

Leo Famulari writes:

> On Tue, May 31, 2016 at 12:31:16PM -0400, Matthew Jordan wrote:
>> What follows are the steps I took to setup my GuixSD box.  What I'm
>> wondering is how would I go about contributing this in some way to the
>> documentation? With some modification of course.
>
> What parts do you think should be added to our manual? A number of these
> steps are already covered in section 7.1 System Installation.
>
>> I am just presenting this cause I had to look around a lot, such as the
>> Gentoo Installation Manual, and Arch Linux manuals in addition to the
>> Parted and Guix Manuals when I attempted my first install.  Just thought
>> it would be a good idea to perhaps have some solid example/steps in the
>> Guix Manual for the installation.
>
> Personally, I don't like putting instructions on how to use 3rd party
> software in manuals such as ours (or the Gentoo or Arch manuals) unless
> the information is very specific to how we use the software.
>
> In my opinion, if there is some deficiency with the 3rd party programs'
> documentation, that documentation should be improved.
>
> Otherwise, knowledge is fragmented into a variety of places where it
> probably won't be updated as the 3rd party software changes. Also, each
> system's manual or wiki will invariably contain some info that is
> specific to that system but not declared as such. And the new, external
> documentation will probably not be reviewed by the upstream maintainers
> for correctness, spreading bad advice across the internet.  Finally, the
> upstream manual will *still* not be improved.
>
> On the other hand, we should strive to make our system as easy to
> install as possible. So, specific advice is most welcome! :)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-31 18:35       ` Matthew Jordan
@ 2016-05-31 21:10         ` Ludovic Courtès
  2016-06-01  4:53           ` Tomáš Čech
  2016-06-01 19:22           ` Matthew Jordan
  2016-05-31 21:13         ` Ethan Stefan Day
  1 sibling, 2 replies; 18+ messages in thread
From: Ludovic Courtès @ 2016-05-31 21:10 UTC (permalink / raw)
  To: Matthew Jordan; +Cc: guix-devel

Matthew Jordan <matthewjordandevops@yandex.com> skribis:

> mentions using ifconfig, correct me if I"m wrong but isn't ifconfig
> considered deprecated?

This ifconfig (part of GNU Inetutils) is maintained, so I think it’s
fine.  :-)

> It would be nice to indicate that you may need additional swap space to
> build the various packages that come with the install.  Also sufficient
> space under /tmp is needed. In my case I had to bind mount the my tmp
> partition from the install target, and turn on the swap to achieve a
> successful install. I used these commands to achieve that.
>
> $ mount --bind /mnt/tmp /tmp
> $ swapon /dev/sda3

This is really a bug: ‘cow-store’ should bind mount /mnt/tmp like you
did.  I’ll push a fix shortly.

I suppose one doesn’t need swap if /tmp is backed by a real disk, too.

Last, ideally, you’d get substitutes for every package during the
installation, and thus having /tmp in RAM wouldn’t matter much.

Anyway, thanks for reporting it!

>> Personally, I don't like putting instructions on how to use 3rd party
>> software in manuals such as ours (or the Gentoo or Arch manuals) unless
>> the information is very specific to how we use the software.
>>
>> In my opinion, if there is some deficiency with the 3rd party programs'
>> documentation, that documentation should be improved.
>>
>> Otherwise, knowledge is fragmented into a variety of places where it
>> probably won't be updated as the 3rd party software changes. Also, each
>> system's manual or wiki will invariably contain some info that is
>> specific to that system but not declared as such. And the new, external
>> documentation will probably not be reviewed by the upstream maintainers
>> for correctness, spreading bad advice across the internet.  Finally, the
>> upstream manual will *still* not be improved.

I concur.

We can easily include hyperlinks to the relevant portions of GNU manuals
like Parted’s.  Maybe someone should contribute improvements to Parted’s
manual, such as introductory material about partitioning?

> While these are valid points, and I have to say I agree with them. Even
> Gentoo and Arch (which are among some of the more challenging distros),
> do provide some example/recipe to assist with partitioning.  I'm not
> saying we quote someone's manual, but someone might find it useful.

I also agree that providing examples of commands to type and so on is
very useful, and we’ve been adding more of that lately.

> We could always indicate that one should refer to upstream manual for
> the latest info, and still provide some steps based on a partitioning
> plan. I think this would be very helpful to those who may not be fully
> verse in partitioning.  My first time using Gentoo was pretty decent
> because of the documentation provided. Here is the appropriate snippet
> from my notes;
>
> Paritioning plan
> Assumming disk is 20GiB
> Bootloader 2MiB
> /boot 300MiB ext2/4
> Swap 1GiB
> / (rest of disk space) ext4
>
> $ lsblk
> Start parted shell
> $ parted -a optimal /dev/sda
> (parted) unit MiB
> (parted) mklabel gpt
> (parted) mkpart primary 1MiB 3MiB
> (parted) name 1 grub
> (parted) set 1 bios_grub on
> (parted) print
> (parted) mkpart primary 3MiB 303MiB
> (parted) name 2 boot
> (parted) print

I’ve come to think that ‘cfdisk’ is easier than Parted’s CLI.  WDYT?

Rather than listing this relatively long list of Parted commands,
perhaps we should provide a tool akin to what Debian’s installer has,
where it offers “standard” partitioning profiles that people can use.
This could be implemented using the Guile bindings of GNU fdisk or
something like that.

Thoughts?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-31 18:35       ` Matthew Jordan
  2016-05-31 21:10         ` Ludovic Courtès
@ 2016-05-31 21:13         ` Ethan Stefan Day
  2016-06-04 21:00           ` Rescuing the GNU Storage Guide? Ludovic Courtès
  1 sibling, 1 reply; 18+ messages in thread
From: Ethan Stefan Day @ 2016-05-31 21:13 UTC (permalink / raw)
  To: leo; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 4626 bytes --]



On 05/31/2016 02:35 PM, Matthew Jordan wrote:
> 
> I just looked ouver the installation part of the manual.
> 
>> What parts do you think should be added to our manual? A number of these
>> steps are already covered in section 7.1 System Installation.
> 
> That was mostly a copy paste from my notes.  But what I wouldn't mind
> seeing in the manual is as follows;
> 
> 1. Section 7.1.4.2 Networking;
> 
> mentions using ifconfig, correct me if I"m wrong but isn't ifconfig
> considered deprecated?
> 
> In which case iproute2 commands could be used;
> 
> $ ip link show
> $ ip link set ens3 up
> 
> 2. Section 7.1.4.3 Disk Partitioning
> 
> It would be nice to indicate that you may need additional swap space to
> build the various packages that come with the install.  Also sufficient
> space under /tmp is needed. In my case I had to bind mount the my tmp
> partition from the install target, and turn on the swap to achieve a
> successful install. I used these commands to achieve that.
> 
> $ mount --bind /mnt/tmp /tmp
> $ swapon /dev/sda3
> 
>> Personally, I don't like putting instructions on how to use 3rd party
>> software in manuals such as ours (or the Gentoo or Arch manuals) unless
>> the information is very specific to how we use the software.
>>
>> In my opinion, if there is some deficiency with the 3rd party programs'
>> documentation, that documentation should be improved.
>>
>> Otherwise, knowledge is fragmented into a variety of places where it
>> probably won't be updated as the 3rd party software changes. Also, each
>> system's manual or wiki will invariably contain some info that is
>> specific to that system but not declared as such. And the new, external
>> documentation will probably not be reviewed by the upstream maintainers
>> for correctness, spreading bad advice across the internet.  Finally, the
>> upstream manual will *still* not be improved.
>>
>> On the other hand, we should strive to make our system as easy to
>> install as possible. So, specific advice is most welcome! :)
> 
> While these are valid points, and I have to say I agree with them. Even
> Gentoo and Arch (which are among some of the more challenging distros),
> do provide some example/recipe to assist with partitioning.  I'm not
> saying we quote someone's manual, but someone might find it useful.
> 
> We could always indicate that one should refer to upstream manual for
> the latest info, and still provide some steps based on a partitioning
> plan. I think this would be very helpful to those who may not be fully
> verse in partitioning.  My first time using Gentoo was pretty decent
> because of the documentation provided. Here is the appropriate snippet
> from my notes;
> 
> Paritioning plan
> Assumming disk is 20GiB
> Bootloader 2MiB
> /boot 300MiB ext2/4
> Swap 1GiB
> / (rest of disk space) ext4
> 
> $ lsblk
> Start parted shell
> $ parted -a optimal /dev/sda
> (parted) unit MiB
> (parted) mklabel gpt
> (parted) mkpart primary 1MiB 3MiB
> (parted) name 1 grub
> (parted) set 1 bios_grub on
> (parted) print
> (parted) mkpart primary 3MiB 303MiB
> (parted) name 2 boot
> (parted) print
> 
> Calculation on host with zsh shell
> $ ((mib = 1 * (1024 ** 1)))
> $ print ${mib}
> 1024
> $ print $((mib + 303))
> 1327
> 
> (parted) mkpart primary 303MiB 1327MiB
> (parted) name 3 swap
> (parted) print
> (parted) mkpart primary 1327MiB -1
> (parted) name 4 root
> (parted) set 2 boot on
> (parted) print
> (parted) quit

From what I've gathered, it seems you should not need to both make a
bios_grub partition and toggle the boot flag on another.

> Of course feel free free to accept/reject these ideas, as they are just
> suggestions based on my state understanding when I first discovered Guix &
> GuixSD.  I like to think of Guix as the next evolution of Linux from
> Arch Linux or Gentoo Linux ^_^.
> 
> Respectfully,
> 

Parted is quite user-friendly.  The problem, for me at least, was not so
much use of the tools, but rather background knowledge about disk
partitioning in general.  The information I can find via web searching
is scattered.  The ideal solution would be to link to the GNU Storage
Guide, like the Parted manual does.  Unfortunately, that document does
not seem to exist, and I am not qualified to write it.  Other
distributions seem to get around this problem by providing an automated
partitioning tool and/or providing examples that work on a wide class of
machines.  Attached is a context diff for guix.texi in the git
repository that expands the partitioning example in a way that I suspect
will work on most modern (and perhaps higher-end) machines.

-Ethan Day


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: guix.texi.diff --]
[-- Type: text/x-patch; name="guix.texi.diff", Size: 4328 bytes --]

*** guix.texi	2016-05-31 16:07:52.443176978 -0400
--- guix-mod.texi	2016-05-31 16:36:07.895090213 -0400
***************
*** 5955,5961 ****
  
  Once this is done, you should be able to reboot the system and boot from
  the USB stick.  The latter usually requires you to get in the BIOS' boot
! menu, where you can choose to boot from the USB stick.
  
  @node Preparing for Installation
  @subsection Preparing for Installation
--- 5955,5962 ----
  
  Once this is done, you should be able to reboot the system and boot from
  the USB stick.  The latter usually requires you to get in the BIOS' boot
! menu, where you can choose to boot from the USB stick.  You may have to
! disable UEFI boot.
  
  @node Preparing for Installation
  @subsection Preparing for Installation
***************
*** 6069,6078 ****
  The installation image includes several partitioning tools, including
  Parted (@pxref{Overview,,, parted, GNU Parted User Manual}),
  @command{fdisk}, and @command{cfdisk}.  Run it and set up your disk with
! the partition layout you want:
  
  @example
! cfdisk
  @end example
  
  Once you are done partitioning the target hard disk drive, you have to
--- 6070,6090 ----
  The installation image includes several partitioning tools, including
  Parted (@pxref{Overview,,, parted, GNU Parted User Manual}),
  @command{fdisk}, and @command{cfdisk}.  Run it and set up your disk with
! the partition layout you want.  The following example assumes your
! motherboard supports GPT partition tables, and will render all data
! currently on your drive inaccessible.  Make sure you @code{select}
! the device you want to install GuixSD on.
  
  @example
! # parted
! (parted) print all
! (parted) select /dev/sda
! (parted) mklabel gpt
! (parted) mkpart primary 1MiB 2MiB
! (parted) toggle 1 bios_grub
! (parted) mkpart primary 2MiB 100%
! (parted) print
! (parted) quit
  @end example
  
  Once you are done partitioning the target hard disk drive, you have to
***************
*** 6089,6095 ****
  @code{my-root} can be created with:
  
  @example
! mkfs.ext4 -L my-root /dev/sda1
  @end example
  
  @c FIXME: Uncomment this once GRUB fully supports encrypted roots.
--- 6101,6107 ----
  @code{my-root} can be created with:
  
  @example
! mkfs.ext4 -L my-root /dev/sda2
  @end example
  
  @c FIXME: Uncomment this once GRUB fully supports encrypted roots.
***************
*** 6098,6104 ****
  @c @example
  @c # fdisk /dev/sdX
  @c @dots{} Create partitions etc.@dots{}
! @c # cryptsetup luksFormat /dev/sdX1
  @c # cryptsetup open --type luks /dev/sdX1 my-partition
  @c # mkfs.ext4 -L my-root /dev/mapper/my-partition
  @c @end example
--- 6110,6116 ----
  @c @example
  @c # fdisk /dev/sdX
  @c @dots{} Create partitions etc.@dots{}
! @c # cryptsetup luksFormat /dev/sdX2
  @c # cryptsetup open --type luks /dev/sdX1 my-partition
  @c # mkfs.ext4 -L my-root /dev/mapper/my-partition
  @c @end example
***************
*** 6108,6127 ****
  Cryptsetup/LUKS for disk encryption.
  
  Once that is done, mount the target root partition under @file{/mnt}
! with a command like (again, assuming @file{/dev/sda1} is the root
  partition):
  
  @example
! mount /dev/sda1 /mnt
  @end example
  
  Finally, if you plan to use one or more swap partitions (@pxref{Memory
  Concepts, swap space,, libc, The GNU C Library Reference Manual}), make
  sure to initialize them with @command{mkswap}.  Assuming you have one
! swap partition on @file{/dev/sda2}, you would run:
  
  @example
! mkswap /dev/sda2
  @end example
  
  @node Proceeding with the Installation
--- 6120,6139 ----
  Cryptsetup/LUKS for disk encryption.
  
  Once that is done, mount the target root partition under @file{/mnt}
! with a command like (again, assuming @file{/dev/sda2} is the root
  partition):
  
  @example
! mount /dev/sda2 /mnt
  @end example
  
  Finally, if you plan to use one or more swap partitions (@pxref{Memory
  Concepts, swap space,, libc, The GNU C Library Reference Manual}), make
  sure to initialize them with @command{mkswap}.  Assuming you have one
! swap partition on @file{/dev/sda3}, you would run:
  
  @example
! mkswap /dev/sda3
  @end example
  
  @node Proceeding with the Installation

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-31 21:10         ` Ludovic Courtès
@ 2016-06-01  4:53           ` Tomáš Čech
  2016-06-01 19:45             ` Alex Kost
  2016-06-01 19:22           ` Matthew Jordan
  1 sibling, 1 reply; 18+ messages in thread
From: Tomáš Čech @ 2016-06-01  4:53 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 659 bytes --]

On Tue, May 31, 2016 at 11:10:21PM +0200, Ludovic Courtès wrote:
>Matthew Jordan <matthewjordandevops@yandex.com> skribis:
>
>> mentions using ifconfig, correct me if I"m wrong but isn't ifconfig
>> considered deprecated?
>
>This ifconfig (part of GNU Inetutils) is maintained, so I think it’s
>fine.  :-)

Yes, ifconfig is considered deprecated for more than decade. I'm not
networking guy but colleague of mine who is told me that ifconfig is
just ugly wrapper not reflecting how the kernel is handling it.

http://serverfault.com/questions/633087/where-is-the-statement-of-deprecation-of-ifconfig-on-linux

iproute2 is way to go.

S_W

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-05-31 21:10         ` Ludovic Courtès
  2016-06-01  4:53           ` Tomáš Čech
@ 2016-06-01 19:22           ` Matthew Jordan
  2016-06-03  8:00             ` Ludovic Courtès
  1 sibling, 1 reply; 18+ messages in thread
From: Matthew Jordan @ 2016-06-01 19:22 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Good Day Ludovic Courtès and everyone,

> This is really a bug: ‘cow-store’ should bind mount /mnt/tmp like you
> did.  I’ll push a fix shortly.
>
> I suppose one doesn’t need swap if /tmp is backed by a real disk, too.
>
> Last, ideally, you’d get substitutes for every package during the
> installation, and thus having /tmp in RAM wouldn’t matter much.
>
> Anyway, thanks for reporting it!

No problem, you are welcome.  Although it didn't cross my mind that it
would be considered a bug.

> I’ve come to think that ‘cfdisk’ is easier than Parted’s CLI.  WDYT?
>
> Rather than listing this relatively long list of Parted commands,
> perhaps we should provide a tool akin to what Debian’s installer has,
> where it offers “standard” partitioning profiles that people can use.
> This could be implemented using the Guile bindings of GNUfdisk or
> something like that.
>
> Thoughts?

This sounds like a decent idea!  If it's CLI tool that would be helpful
in automated installs.

And speaking of automated installs, would it be possible to add
lsh/openssh and wget to the USB install image?

Would be great if there was an ISO image as well. While seemingly old
fashioned tools like Packer (https://www.packer.io/) can use them to
automate image creation. ^_^

And one more question, is there a central place I can look to
find/research guile bindings?

Sincerely,

-- 
Matthew Jordan
Sent with my mu4e

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-06-01  4:53           ` Tomáš Čech
@ 2016-06-01 19:45             ` Alex Kost
  2016-06-02  8:07               ` Ludovic Courtès
  0 siblings, 1 reply; 18+ messages in thread
From: Alex Kost @ 2016-06-01 19:45 UTC (permalink / raw)
  To: guix-devel

Tomáš Čech (2016-06-01 07:53 +0300) wrote:

> On Tue, May 31, 2016 at 11:10:21PM +0200, Ludovic Courtès wrote:
>>Matthew Jordan <matthewjordandevops@yandex.com> skribis:
>>
>>> mentions using ifconfig, correct me if I"m wrong but isn't ifconfig
>>> considered deprecated?
>>
>>This ifconfig (part of GNU Inetutils) is maintained, so I think it’s
>>fine.  :-)
>
> Yes, ifconfig is considered deprecated for more than decade. I'm not
> networking guy but colleague of mine who is told me that ifconfig is
> just ugly wrapper not reflecting how the kernel is handling it.
> http://serverfault.com/questions/633087/where-is-the-statement-of-deprecation-of-ifconfig-on-linux
>
> iproute2 is way to go.

I would also prefer to see "ip" command instead of "ifconfig" in the
manual.  Alternatively both can be mentioned..

-- 
Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-06-01 19:45             ` Alex Kost
@ 2016-06-02  8:07               ` Ludovic Courtès
  2016-06-02  8:37                 ` Alex Kost
  0 siblings, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2016-06-02  8:07 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1142 bytes --]

Alex Kost <alezost@gmail.com> skribis:

> Tomáš Čech (2016-06-01 07:53 +0300) wrote:
>
>> On Tue, May 31, 2016 at 11:10:21PM +0200, Ludovic Courtès wrote:
>>>Matthew Jordan <matthewjordandevops@yandex.com> skribis:
>>>
>>>> mentions using ifconfig, correct me if I"m wrong but isn't ifconfig
>>>> considered deprecated?
>>>
>>>This ifconfig (part of GNU Inetutils) is maintained, so I think it’s
>>>fine.  :-)
>>
>> Yes, ifconfig is considered deprecated for more than decade. I'm not
>> networking guy but colleague of mine who is told me that ifconfig is
>> just ugly wrapper not reflecting how the kernel is handling it.
>> http://serverfault.com/questions/633087/where-is-the-statement-of-deprecation-of-ifconfig-on-linux
>>
>> iproute2 is way to go.
>
> I would also prefer to see "ip" command instead of "ifconfig" in the
> manual.  Alternatively both can be mentioned..

I have a hard time leaving ifconfig/iwconfig. ;-)

I was about to change the manual’s examples to ‘ip’, but then realized
that this is Linux-specific and doesn’t buy us much for these simple
cases.  So, what about this:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 456 bytes --]

diff --git a/doc/guix.texi b/doc/guix.texi
index 6d47976..5fd4679 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -5999,7 +5999,9 @@ more information.
 
 @subsubsection Networking
 
-Run the following command see what your network interfaces are called:
+Run the following command see what your network interfaces are called
+(on GNU/Linux, seasoned users may prefer the versatile @command{ip}
+command over @command{ifconfig}):
 
 @example
 ifconfig -a

[-- Attachment #3: Type: text/plain, Size: 110 bytes --]


Dunno if it really helps, since “seasoned users” already know that ‘ip’
is the thing.

Ludo’.

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-06-02  8:07               ` Ludovic Courtès
@ 2016-06-02  8:37                 ` Alex Kost
  2016-06-03  8:11                   ` Ludovic Courtès
  0 siblings, 1 reply; 18+ messages in thread
From: Alex Kost @ 2016-06-02  8:37 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Ludovic Courtès (2016-06-02 11:07 +0300) wrote:

> Alex Kost <alezost@gmail.com> skribis:
>
>> Tomáš Čech (2016-06-01 07:53 +0300) wrote:
>>
>>> On Tue, May 31, 2016 at 11:10:21PM +0200, Ludovic Courtès wrote:
>>>>Matthew Jordan <matthewjordandevops@yandex.com> skribis:
>>>>
>>>>> mentions using ifconfig, correct me if I"m wrong but isn't ifconfig
>>>>> considered deprecated?
>>>>
>>>>This ifconfig (part of GNU Inetutils) is maintained, so I think it’s
>>>>fine.  :-)
>>>
>>> Yes, ifconfig is considered deprecated for more than decade. I'm not
>>> networking guy but colleague of mine who is told me that ifconfig is
>>> just ugly wrapper not reflecting how the kernel is handling it.
>>> http://serverfault.com/questions/633087/where-is-the-statement-of-deprecation-of-ifconfig-on-linux
>>>
>>> iproute2 is way to go.
>>
>> I would also prefer to see "ip" command instead of "ifconfig" in the
>> manual.  Alternatively both can be mentioned..
>
> I have a hard time leaving ifconfig/iwconfig. ;-)
>
> I was about to change the manual’s examples to ‘ip’, but then realized
> that this is Linux-specific and doesn’t buy us much for these simple
> cases.  So, what about this:

Wow, do you mean that ifconfig is not only for Linux kernel?

> diff --git a/doc/guix.texi b/doc/guix.texi
> index 6d47976..5fd4679 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -5999,7 +5999,9 @@ more information.
>  
>  @subsubsection Networking
>  
> -Run the following command see what your network interfaces are called:
   Run the following command to see what your network interfaces are called:

BTW I think there is a typo here ↑, isn't it?

> +Run the following command see what your network interfaces are called
> +(on GNU/Linux, seasoned users may prefer the versatile @command{ip}
> +command over @command{ifconfig}):
>  
>  @example
>  ifconfig -a
>
> Dunno if it really helps, since “seasoned users” already know that ‘ip’
> is the thing.

If ifconfig is a general thing (suitable for Hurd) then I agree; we
should probably leave it as it is now.  Otherwise I would also add a
mention how to do it with "ip", like this:

@example
ifconfig -a
@end example

or

@example
ip a
@end example

-- 
Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-06-01 19:22           ` Matthew Jordan
@ 2016-06-03  8:00             ` Ludovic Courtès
  0 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2016-06-03  8:00 UTC (permalink / raw)
  To: Matthew Jordan; +Cc: guix-devel

Matthew Jordan <matthewjordandevops@yandex.com> skribis:

>> I’ve come to think that ‘cfdisk’ is easier than Parted’s CLI.  WDYT?
>>
>> Rather than listing this relatively long list of Parted commands,
>> perhaps we should provide a tool akin to what Debian’s installer has,
>> where it offers “standard” partitioning profiles that people can use.
>> This could be implemented using the Guile bindings of GNUfdisk or
>> something like that.
>>
>> Thoughts?
>
> This sounds like a decent idea!  If it's CLI tool that would be helpful
> in automated installs.

I think automated installs are better served by what we have today.

What I had in mind was an interactive tool.

> And speaking of automated installs, would it be possible to add
> lsh/openssh and wget to the USB install image?

Once you’ve booted the installation image, you can run:

  guix package -i wget openssh

We could add, say, wget to the standard set of packages in (gnu system
install), but we’d need to make sure it doesn’t take too much extra
space.

> Would be great if there was an ISO image as well.

This has been asked many times, so surely we’ll end up doing that one
day or another.  :-)

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-06-02  8:37                 ` Alex Kost
@ 2016-06-03  8:11                   ` Ludovic Courtès
  2016-06-04 12:52                     ` Alex Kost
  0 siblings, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2016-06-03  8:11 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 3498 bytes --]

Alex Kost <alezost@gmail.com> skribis:

> Ludovic Courtès (2016-06-02 11:07 +0300) wrote:
>
>> Alex Kost <alezost@gmail.com> skribis:
>>
>>> Tomáš Čech (2016-06-01 07:53 +0300) wrote:
>>>
>>>> On Tue, May 31, 2016 at 11:10:21PM +0200, Ludovic Courtès wrote:
>>>>>Matthew Jordan <matthewjordandevops@yandex.com> skribis:
>>>>>
>>>>>> mentions using ifconfig, correct me if I"m wrong but isn't ifconfig
>>>>>> considered deprecated?
>>>>>
>>>>>This ifconfig (part of GNU Inetutils) is maintained, so I think it’s
>>>>>fine.  :-)
>>>>
>>>> Yes, ifconfig is considered deprecated for more than decade. I'm not
>>>> networking guy but colleague of mine who is told me that ifconfig is
>>>> just ugly wrapper not reflecting how the kernel is handling it.
>>>> http://serverfault.com/questions/633087/where-is-the-statement-of-deprecation-of-ifconfig-on-linux
>>>>
>>>> iproute2 is way to go.
>>>
>>> I would also prefer to see "ip" command instead of "ifconfig" in the
>>> manual.  Alternatively both can be mentioned..
>>
>> I have a hard time leaving ifconfig/iwconfig. ;-)
>>
>> I was about to change the manual’s examples to ‘ip’, but then realized
>> that this is Linux-specific and doesn’t buy us much for these simple
>> cases.  So, what about this:
>
> Wow, do you mean that ifconfig is not only for Linux kernel?

Exactly.

Under the hood, ‘ip’ uses Linux-specific netlink socket interfaces,
whereas GNU ifconfig uses the good ol’ ioctls that most Unices support
(including GNU/Hurd):

--8<---------------cut here---------------start------------->8---
~$ sudo strace -e socket ip a
socket(PF_NETLINK, SOCK_RAW|SOCK_CLOEXEC, 0) = 3
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 5c:26:0a:64:07:23 brd ff:ff:ff:ff:ff:ff
    inet 193.50.110.57/24 brd 193.50.110.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::5e26:aff:fe64:723/64 scope link 
       valid_lft forever preferred_lft forever
3: wlp0s29u1u2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 60:02:b4:99:9b:31 brd ff:ff:ff:ff:ff:ff
+++ exited with 0 +++
ludo@pluto ~$ sudo strace -e ioctl ifconfig -a
ioctl(3, SIOCGIFINDEX, {ifr_name="wlp0s29u1u2", ifr_index=3}) = 0
ioctl(3, SIOCGIFINDEX, {ifr_name="lo", ifr_index=1}) = 0
ioctl(3, SIOCGIFINDEX, {ifr_name="eno1", ifr_index=2}) = 0
ioctl(5, SIOCGIFINDEX, {ifr_name="eno1", ifr_index=2}) = 0
ioctl(4, SIOCGIFHWADDR, {ifr_name="eno1", ifr_hwaddr=5c:26:0a:64:07:23}) = 0
ioctl(4, SIOCGIFHWADDR, {ifr_name="eno1", ifr_hwaddr=5c:26:0a:64:07:23}) = 0
ioctl(4, SIOCGIFHWADDR, {ifr_name="eno1", ifr_hwaddr=5c:26:0a:64:07:23}) = 0
ioctl(4, SIOCGIFHWADDR, {ifr_name="eno1", ifr_hwaddr=5c:26:0a:64:07:23}) = 0
eno1      Link encap:Ethernet  HWaddr 5C:26:0A:64:07:23

[...]

--8<---------------cut here---------------end--------------->8---

> If ifconfig is a general thing (suitable for Hurd) then I agree; we
> should probably leave it as it is now.  Otherwise I would also add a
> mention how to do it with "ip", like this:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 574 bytes --]

diff --git a/doc/guix.texi b/doc/guix.texi
index c8c7555..12dd354 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6010,6 +6010,13 @@ Run the following command see what your network interfaces are called:
 ifconfig -a
 @end example
 
+@noindent
+@dots{} or, using the GNU/Linux-specific @command{ip} command:
+
+@example
+ip a
+@end example
+
 @c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20
 Wired interfaces have a name starting with @samp{e}; for example, the
 interface corresponding to the first on-board Ethernet controller is

[-- Attachment #3: Type: text/plain, Size: 38 bytes --]


OK with this?

Thanks,
Ludo’.

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: feedback as solicited by Guix manual (Section 7.1.5)
  2016-06-03  8:11                   ` Ludovic Courtès
@ 2016-06-04 12:52                     ` Alex Kost
  0 siblings, 0 replies; 18+ messages in thread
From: Alex Kost @ 2016-06-04 12:52 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Ludovic Courtès (2016-06-03 11:11 +0300) wrote:

> Alex Kost <alezost@gmail.com> skribis:
[...]
>> Wow, do you mean that ifconfig is not only for Linux kernel?
>
> Exactly.
>
> Under the hood, ‘ip’ uses Linux-specific netlink socket interfaces,
> whereas GNU ifconfig uses the good ol’ ioctls that most Unices support
> (including GNU/Hurd):
>
>
> ~$ sudo strace -e socket ip a
> socket(PF_NETLINK, SOCK_RAW|SOCK_CLOEXEC, 0) = 3
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
>     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 
>        valid_lft forever preferred_lft forever
> 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
>     link/ether 5c:26:0a:64:07:23 brd ff:ff:ff:ff:ff:ff
>     inet 193.50.110.57/24 brd 193.50.110.255 scope global eno1
>        valid_lft forever preferred_lft forever
>     inet6 fe80::5e26:aff:fe64:723/64 scope link 
>        valid_lft forever preferred_lft forever
> 3: wlp0s29u1u2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
>     link/ether 60:02:b4:99:9b:31 brd ff:ff:ff:ff:ff:ff
> +++ exited with 0 +++
> ludo@pluto ~$ sudo strace -e ioctl ifconfig -a
> ioctl(3, SIOCGIFINDEX, {ifr_name="wlp0s29u1u2", ifr_index=3}) = 0
> ioctl(3, SIOCGIFINDEX, {ifr_name="lo", ifr_index=1}) = 0
> ioctl(3, SIOCGIFINDEX, {ifr_name="eno1", ifr_index=2}) = 0
> ioctl(5, SIOCGIFINDEX, {ifr_name="eno1", ifr_index=2}) = 0
> ioctl(4, SIOCGIFHWADDR, {ifr_name="eno1", ifr_hwaddr=5c:26:0a:64:07:23}) = 0
> ioctl(4, SIOCGIFHWADDR, {ifr_name="eno1", ifr_hwaddr=5c:26:0a:64:07:23}) = 0
> ioctl(4, SIOCGIFHWADDR, {ifr_name="eno1", ifr_hwaddr=5c:26:0a:64:07:23}) = 0
> ioctl(4, SIOCGIFHWADDR, {ifr_name="eno1", ifr_hwaddr=5c:26:0a:64:07:23}) = 0
> eno1      Link encap:Ethernet  HWaddr 5C:26:0A:64:07:23
>
> [...]
>
>
>> If ifconfig is a general thing (suitable for Hurd) then I agree; we
>> should probably leave it as it is now.  Otherwise I would also add a
>> mention how to do it with "ip", like this:
>
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index c8c7555..12dd354 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -6010,6 +6010,13 @@ Run the following command see what your network interfaces are called:
>  ifconfig -a
>  @end example
>  
> +@noindent
> +@dots{} or, using the GNU/Linux-specific @command{ip} command:
> +
> +@example
> +ip a
> +@end example
> +
>  @c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20
>  Wired interfaces have a name starting with @samp{e}; for example, the
>  interface corresponding to the first on-board Ethernet controller is
>
> OK with this?

As for me, I'm absolutely OK with this.  And thanks for the explanation
that ifconfig is a more general tool.

-- 
Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Rescuing the GNU Storage Guide?
  2016-05-31 21:13         ` Ethan Stefan Day
@ 2016-06-04 21:00           ` Ludovic Courtès
  2016-06-04 23:18             ` Ludovic Courtès
  0 siblings, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2016-06-04 21:00 UTC (permalink / raw)
  To: bug-parted, polzer; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 789 bytes --]

Hello!

The Parted manual mentions a “GNU Storage Guide” that the intertubes
haven’t even seen, it seems.

I found that r600 by Leslie P. Polzer in the original svn repo was the
one that introduced the references to this guide (see patch below, or
‘svn diff -c600 svn://svn.debian.org/svn/parted/upstream/trunk’).

I was wondering if Leslie or someone else would have a copy of this
guide?

Alternately, what about reinstating the relevant bits of r600?

The reason I’m asking is that, in the context of GuixSD, it would be
great to be able to refer to the Parted manual or to the Storage Guide,
rather than writing yet another half-baked intro to partitioning with
Parted that is bound to become outdated.

Thoughts?

Thanks in advance.  :-)
Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 18108 bytes --]

Index: parted.texi
===================================================================
--- parted.texi	(revision 599)
+++ parted.texi	(revision 600)
@@ -1,3 +1,4 @@
+@c TODO: "version" command.  Read through and correct.
 \input texinfo    @c -*-texinfo-*-
 @c %**start of header
 @setfilename parted.info
@@ -72,7 +73,7 @@
 
 This document applies to @value{VERSION} of GNU Parted.  The original
 version was by Andrew Clausen, and was translated into this format
-by Richard M. Kreuter.  It is currently maintained by Andrew Clausen.
+by Richard M. Kreuter.  It was heavily edited by Leslie P. Polzer in 2006. 
 @end ifnottex
 
 @shortcontents
@@ -123,42 +124,32 @@
 ``disk imaging'' --- replicating an installation on another computer.
 
 This documentation is written with the assumption that the reader
-has some understanding of partitions and file systems.  If you want to
-learn more about these, the Partition mini-HOWTO is recommended reading.
-It is probably included with your distribution, or it is available at
+has some understanding of partitioning and file systems.  If you want to
+learn more about these, the upcoming GNU Storage Guide is recommended
+reading.
 
-@c FIXME: standards: howto labelled non-free by LDP
-@uref{http://www.linuxdoc.org/HOWTO/mini/Partition/index.html}
-
 GNU Parted was designed to minimize the chance of data loss.  For
 example, it was designed to avoid data loss during interruptions (like
-power failure) and performs many safety checks.  However there could
-be bugs in Parted, so you should back up your important files before
+power failure) and performs many safety checks.  However, there could
+be bugs in GNU Parted, so you should back up your important files before
 running Parted.
+Also note that reiserfs support relies on libreiserfs, which does not
+fulfil the aforementioned requirement.  The same holds for any external
+tools like @kbd{ntfsresize}.
 
-The GNU Parted homepage is @uref{http://www.gnu.org/software/parted}.  It can
-be downloaded from @uref{ftp://ftp.gnu.org/gnu/parted}.
+The GNU Parted homepage is @uref{http://www.gnu.org/software/parted}.  The
+library and frontend themselves can be downloaded from
+@uref{ftp://ftp.gnu.org/gnu/parted}.
+You can also find a listing of mailing lists, notes for contributing and
+more useful information on the web site.
 
-The Parted mailing list is @email{parted@@gnu.org}.  To subscribe, write
-to @email{bug-parted-request@@gnu.org} with @samp{subscribe} as the
-Subject of the message.  Subscription information and archives are
-available at:
-
-@uref{http://mail.gnu.org/mailman/listinfo/bug-parted}
-
 Please send bug reports to @email{bug-parted@@gnu.org}.  When sending bug
-reports, please include the version of GNU Parted.  If the bug is
-related to partition tables, then please include the output from these
-commands (for disk @file{/dev/hda}):
+reports, please include the version of GNU Parted.
+Please include the output from these commands (for disk @file{/dev/hda}):
 
 @example
 @group
 # @kbd{parted /dev/hda print unit s print unit chs print}
-# @kbd{fdisk /dev/hda -l -u}
-# @kbd{fdisk /dev/hda}
-Command (m for help): @kbd{p}
-Command (m for help): @kbd{x}
-Extended command (m for help): @kbd{p}
 @end group
 @end example
 
@@ -281,7 +272,7 @@
 disables dynamic loading of some libraries (only libreiserfs for now,
 although we hope to expand this).  Dynamic loading is useful because it
 allows you to reuse libparted shared libraries even when you don't know
-when if some libraries will be available.  It has a small overhead (mainly
+if some libraries will be available.  It has a small overhead (mainly
 linking with libdl), so it may be useful to disable it on bootdisks if
 you don't need the flexibility.
 
@@ -301,14 +292,8 @@
 @item --disable-Werror
 ignore warning messages in compilation
 
-@item --enable-all-static		
-builds the Parted binary as a fully static binary.  This is convienient
-for boot disks, because you don't need to install any libraries on the
-boot disk (although, other programs may require them@dots{})  Note: you will
-also want to run strip(1).
-
 @item --enable-discover-only
-support only reading/probing
+support only reading/probing (reduces size considerably)
 
 @item --enable-mtrace
 enable malloc() debugging
@@ -319,70 +304,39 @@
 @end table
 
 @node Parted boot disks
-@section Using a Parted Boot Disk
+@section Using a Parted stand-alone disk
 @cindex boot disk
-@cindex boot floppy
 @cindex unsupported platforms
 @cindex resizing root device
 
-If you want run Parted on a machine without GNU/Linux installed, or you
+If you want to run GNU Parted on a machine without GNU/Linux installed, or you
 want to resize a root or boot partition, you will need to use a boot disk.
 
+Special boot disk images for GNU Parted used to be available, but with the
+emergence of a plethora of rescue disks and Live CDs that all
+include GNU Parted this is no longer necessary.
+However, please note that these disks often ship with out-of-date
+versions of Parted.  To compensate for this a static binary
+of the latest GNU Parted version is available, which you can use thus:
 
-Boot disk images (x86-only) are available from:
+@c There should be instructions for CD and USB here.
 
-@uref{ftp://ftp.gnu.org/gnu/parted/bootdisk}
-
-You need two disks.  The boot disk contains Linux... it doesn't
-vary between Parted versions.  The root disk contains Parted (and
-other stuff), and varies between Parted releases.
-
-So, here are the steps:
-
+@subsection Creating the Parted disk
 @enumerate
-@item Download the boot disk (i.e. @kbd{partboot.img}) and a root disk
-(eg: @kbd{partroot-@value{VERSION}.img}).
+@item Boot your system 
 
-@item Create the boot disk, by copying the image to a floppy.  In GNU/Linux,
-you can type:
+@item Download @file{parted-static-VERSION.tgz} from @uref{ftp://ftp.gnu.org/parted/static}
+@item Unpack the tarball, resulting in a file called ``parted.static".
 
-	@example
-	# @kbd{dd if=partboot.img of=/dev/fd0 bs=1440k}
-	@end example
+@item Insert a floppy.
 
-In Windows, you can use @kbd{rawrite.exe}.  It is available in many
-places, including @uref{ftp://ftp.tux.org/pub/dos/rawrite/rawrite.exe}.
+@item Do a low-level format on it (on GNU/Linux this can be achieved with
+      the tool ``fdformat" from the ``util-linux" package.
+      This is basically a sanity check because floppy disks often 
+      contain bad blocks.
 
-@item Create the root disk, using a similar procedure.  e.g.:
+@item Create a file system. Example:
 
-	@example
-	# @kbd{dd if=partroot-@value{VERSION}.img of=/dev/fd0 bs=1440k}
-	@end example
-
-@item Boot off the boot disk.  Do this by inserting the boot disk, and
-rebooting your computer.  You might need to tell your BIOS (the startup
-program when your computer turns on) to allow booting off a floppy disk.
-
-@item When asked, insert the root floppy disk.
-@end enumerate
-
-The boot disk contains many drivers for different hard disk controllers,
-but yours might not be supported.  So, if you're unlucky, you will need
-to make your own boot disk.  You can copy the parted binary from the parted
-bootdisk onto another disk, or try other boot disks, or make your own.
-You may find Mkpart useful (not to be confused with Parted's mkpart command),
-which is a shell script to make custom parted boot disks.  It is available at:
-
-@uref{ftp://ftp.tux.org/pub/people/kent-robotti/mkpart}
-
-To copy parted from the boot disk onto another disk:
-
-@enumerate
-@item Boot from the Parted boot disk.
-
-@item Insert another ext2-formatted floppy disk.  If it isn't formated,
-you can create a file system with, for example:
-
 @example
 $ @kbd{parted /dev/fd0 mklabel loop mkpartfs primary ext2 0 1.4}
 @end example
@@ -393,10 +347,10 @@
 $ @kbd{mount -t ext2 /dev/fd0 /mnt/floppy}
 @end example
 
-@item Copy @file{/usr/bin/parted} to the floppy, e.g.,
+@item Copy @file{parted.static} to the floppy, e.g.,
 
 @example
-$ @kbd{cp /usr/bin/parted /mnt/floppy}
+$ @kbd{cp parted.static /mnt/floppy}
 @end example
 
 @item Unmount the floppy, e.g.,
@@ -404,10 +358,11 @@
 @example
 $ @kbd{umount /mnt/floppy}
 @end example
+@end enumerate
 
-@item Find a boot disk that @emph{does} support your hard disk.
-(Hint: try looking for rescue disks from various distributions on big
-mirror sites)
+@subsection Using the Parted disk
+@enumerate
+@item Choose a rescue disk that suits you. 
 
 @item Boot off your rescue disk.  Mount the disk you copied Parted onto.
 
@@ -415,7 +370,7 @@
 
 @example
 # @kbd{cd /mnt/floppy}
-# @kbd{./parted}
+# @kbd{./parted-static}
 @end example
 @end enumerate
 
@@ -432,49 +387,16 @@
 @end menu
 
 @node Partitioning
-@section Partitioning Concepts
+@section Introduction to Partitioning 
 @cindex partitioning overview
 
 Unfortunately, partitioning your disk is rather complicated.  This is
 because there are interactions between many different systems that need
-to be taken into consideration:
+to be taken into consideration.
 
-@itemize @bullet
-@item
-The firmware -- the program that is programmed into a ROM chip inside
-your computer, that does memory checks, etc.  You cannot (easily)
-change programs in this system.  Examples of firmware programs: AmiBIOS,
-Award, Phoenix, OpenFirmware.  You will only have one of these programs.
+This manual used to introduce the reader to these systems and their
+working.  This content has moved to the GNU Storage Guide.
 
-@item
-The boot loader -- the program that allows you to select which operating
-system you want to use, and loads that operating system.  Examples:
-LILO, GRUB, Yaboot, Quik.  You may have more than one boot loader
-installed, especially if you have more than one type of operating system
-installed.
-
-@item
-The operating system (at the moment, this must be GNU/Linux or GNU/Hurd)
-that runs Parted, and the other operating systems that you use.
-
-@item
-The file system types -- the way the data stored on partitions.  Examples
-of these are: ext2, fat32, hfs, reiserfs.  You will often have
-partitions of different file system types.
-@end itemize
-
-Parted supports many combinations of firmware, boot loader, operating
-system, and file systems, and will support more in the future.  To
-further understand the roles of each, please see @ref{Firmware},
-@ref{Boot Loaders}, @ref{Operating Systems}, and @ref{File Systems}.
-
-This chapter describes how to use Parted, which is mostly independent
-of system details.  You should read this chapter and then the chapters
-on firmware, boot loaders, operating systems, and file systems that
-are relevant to your installation.  For example, if you are only using
-LILO as your boot loader, then you should read the introduction and
-@ref{LILO, the section on LILO}.
-
 @node Running Parted
 @section Using GNU Parted
 @cindex modes of use
@@ -512,6 +434,7 @@
 type ``p'' instead of ``print'', and ``resi'' instead of ``resize''.
 Commands can be typed either in English, or your native language (if
 your language has been translated).  This may create ambiguities.
+Commands are case-insensitive.
 
 Numbers indicating partition locations can be whole numbers or decimals.
 The suffix selects the unit, which may be one of those described in
@@ -540,7 +463,9 @@
 significantly different from the size requested, Parted will warn you.
 Since many partitioning systems have complicated constraints, Parted will
 usually do something slightly different to what you asked.  (For example,
-create a partitiong starting at 10.352Mb, not 10.4Mb)
+create a partition starting at 10.352Mb, not 10.4Mb)
+If the calculated values differ too much, Parted will ask you for
+confirmation.
 
 @node Invoking Parted
 @section Command Line Options
@@ -548,7 +473,7 @@
 @cindex commands, overview
 @cindex invocation options
 
-When invoked from the command line, parted supports the following syntax:
+When invoked from the command line, Parted supports the following syntax:
 
 @example
 # @kbd{parted [@var{option}] @var{device} [@var{command} [@var{argument}]]}
@@ -555,7 +480,7 @@
 @end example
 
 Available options and commands follow.  For detailed explanations of the
-use of parted commands, see @ref{Command explanations}. Options begin
+use of Parted commands, see @ref{Command explanations}. Options begin
 with a hyphen, commands do not:
 
 Options:
@@ -604,6 +529,7 @@
 * select::
 * set::
 * unit::
+* version::
 @end menu
 
 @node check
@@ -692,13 +618,10 @@
 will have no partitions.  This command (normally) won't technically
 destroy your data, but it will make it basically unusable,
 and you will need to use the rescue command (@pxref{Related Software and
-Info}) to recover any partitions.  Gpart only works for msdos disk
-labels (AFAIK), but is much better than parted at recovering partitions.
+Info}) to recover any partitions.
 Parted works on all partition tables.  @footnote{Everyone seems to
 have a different word for ``disk label'' --- these are all the same
-thing: partition table, partition map.  Also, the Master Boot Record on
-x86 machines is stored in the same sector as Partition Tables (you don't
-need to know this to use Parted).}
+thing: partition table, partition map.}
 
 @var{label-type} must be one of these supported disk labels:
 @itemize @bullet
@@ -717,7 +640,8 @@
 (parted) @kbd{mklabel msdos}
 @end example
 
-Create an msdos style disklabel.
+Create an MS-DOS disk label.  This is still the most common disk label for
+PCs.
 @end deffn
 
 @node mkfs
@@ -852,7 +776,7 @@
 Example:
 
 @example
-(parted) move 2 150 500
+(parted) move 2 150M 500M
 @end example
 
 Move the partition numbered 2 so that it begins 150 megabytes from the start of
@@ -928,7 +852,8 @@
 It is only after Parted exits that the Linux kernel knows about the changes
 Parted has made to the disks.  However, the changes caused by typing your
 commands will @emph{probably} be made to the disk immediately after typing a
-command.  However, Linux's cache, and the disk's hardware cache may delay this.
+command.  However, the operating system's cache and the disk's hardware cache
+may delay this.
 @end deffn
 
 @node rescue
@@ -1016,7 +941,7 @@
 Example:
 
 @example
-(parted) @kbd{resize 3 200 850}
+(parted) @kbd{resize 3 200M 850M}
 @end example
 
 Resize partition 3, so that it begins 200 megabytes and ends 850
@@ -1094,7 +1019,7 @@
 enforced by Parted).
 
 @item lba
-(MS-DOS) - this flag can be enabled, to tell MS DOS, MS Windows 9x and
+(MS-DOS) - this flag can be enabled to tell MS DOS, MS Windows 9x and
 MS Windows ME based operating systems to use Linear (LBA) mode.
 
 @item root
@@ -1196,9 +1121,9 @@
 wrote that satisfies constraints from both the operation, the
 filesystem being worked on, the disk label, other partitions and so
 on.  Use the sector unit ``s'' to specify exact locations (if they
-do not satisfy every constraints, Parted will refuse to do the
-operation).  Note that negative numbers count back from the end of
-the disk, with ``-1s'' indicating the end of the disk.  
+do not satisfy all onstraints, Parted will ask you for the nearest 
+solution).  Note that negative numbers count back from the end of
+the disk, with ``-1s'' pointing to the end of the disk.  
 
 Example:
 
@@ -2248,8 +2173,8 @@
 @noindent NOTES:
 @enumerate
 @c (1)
-@item The start of the partition must stay fixed for ext2, ext3, reiserfs, hfs,
-hfs+ and hfsx.
+@item The start of the partition must stay fixed for ext2, ext3, Reiser FS,
+HFS, HFS+ and HFSx.
 @c (2)
 @item The partition you copy to must be bigger (or exactly the same size)
 as the partition you copy from.
@@ -2259,11 +2184,11 @@
 gracefully fail, leaving the file system intact, if there are any errors.
 @c (4)
 @item The size of the new partition, after resizing or copying, is
-restricted by the cluster size for fat (mainly affects FAT16).  This is
-worse than you think, because you don't get to choose your cluster size
-(it's a bug in Windows, but you want compatibility, right?).
+restricted by the cluster size for the FAT file system (mainly affects FAT16).
+This is worse than you think, because you don't get to choose your cluster
+size. It's a bug in Microsoft Windows, but you want compatibility, right?
 
-So, in practise, you can always shrink your partition (because Parted
+So, in practice, you can always shrink your partition (because Parted
 can shrink the cluster size), but you may not be able to grow the
 partition to the size you want.  If you don't have any problems with
 using FAT32, you will always be able to grow the partition to the size
@@ -2272,10 +2197,10 @@
 Summary: you can always shrink your partition.  If you can't use FAT32
 for some reason, you may not be able to grow your partition.
 @c (5)
-@item Parted can only shrink hfs, hfs+ and hfsx file systems.
+@item Parted can only shrink HFS, HFS+ and HFSx file systems.
 @c (6)
-@item Reiserfs support is enabled if you install libreiserfs, which is available
-at @uref{http://www.namesys.com/pub/libreiserfs}.
+@item Reiser FS support is enabled if you install libreiserfs,
+which is available at @uref{http://www.namesys.com/pub/libreiserfs}.
 @end enumerate
 
 @node Ext2
@@ -2288,16 +2213,17 @@
 are other ways of copying partitions, however:
 
 @itemize @bullet
-@item Use Parted's mkfs command (or mkfs.ext2), and then run at the shell:
+@item Use Parted's mkfs command (or mkfs.ext2) on the target partiton and copy
+all the files. Example for copying: 
 
-FIXME!!! this doesn't work quite right - but it should be OK for most
-people@dots{}
-
 @example
-# @kbd{mount -t ext2 /dev/hda2 /mnt/dst}
-# @kbd{find /mnt/src -depth | cpio -pm /mnt/dst}
+# @kbd{(cd /mnt/src; tar -c .) | (cd /mnt/dst; tar -x )}
 @end example
 
+This was tested with GNU tar and should work with most other, if not all,
+versions of the tar program. Mount the appropriate devices on @file{/mnt/src}
+and @file{/mnt/dst}. Also note the @kbd{--sparse} option of GNU tar.
+
 @item If the duplicate partition is going to bigger than the original,
 this can also be done: first, create the new ext2 partition.  Then:
 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Rescuing the GNU Storage Guide?
  2016-06-04 21:00           ` Rescuing the GNU Storage Guide? Ludovic Courtès
@ 2016-06-04 23:18             ` Ludovic Courtès
  0 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2016-06-04 23:18 UTC (permalink / raw)
  To: bug-parted; +Cc: guix-devel, polzer

ludo@gnu.org (Ludovic Courtès) skribis:

> I was wondering if Leslie or someone else would have a copy of this
> guide?

I found <https://alioth.debian.org/projects/storage-guide/> but I get
“Permission Denied”.

Anyone has access to it?

Ludo’.

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2016-06-04 23:18 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-30  0:45 feedback as solicited by Guix manual (Section 7.1.5) Ethan Stefan Day
2016-05-31 15:58 ` Leo Famulari
2016-05-31 16:31   ` Matthew Jordan
2016-05-31 17:56     ` Leo Famulari
2016-05-31 18:35       ` Matthew Jordan
2016-05-31 21:10         ` Ludovic Courtès
2016-06-01  4:53           ` Tomáš Čech
2016-06-01 19:45             ` Alex Kost
2016-06-02  8:07               ` Ludovic Courtès
2016-06-02  8:37                 ` Alex Kost
2016-06-03  8:11                   ` Ludovic Courtès
2016-06-04 12:52                     ` Alex Kost
2016-06-01 19:22           ` Matthew Jordan
2016-06-03  8:00             ` Ludovic Courtès
2016-05-31 21:13         ` Ethan Stefan Day
2016-06-04 21:00           ` Rescuing the GNU Storage Guide? Ludovic Courtès
2016-06-04 23:18             ` Ludovic Courtès
2016-05-31 16:19 ` feedback as solicited by Guix manual (Section 7.1.5) Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).