LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - Installation
User Name
Password
Slackware - Installation This forum is for the discussion of installation issues with Slackware.

Notices


Reply
  Search this Thread
Old 05-27-2016, 05:03 PM   #1
Slakerlife
Member
 
Registered: May 2016
Location: somewhere in the world!
Distribution: slackware
Posts: 66

Rep: Reputation: Disabled
using a separate boot partition


Hello

I have a question about setting up a separate boot partition, so currently I have the following:
1. /boot
2. Swap
3. /
4. /var

After completing the full install I get an option to set up lilo, I have been using the expert option, after selecting and going thru the various windows of the lilo header I get notified that slackware has chosen automatically /dev/sda as by boot, I have been adding a 1 to the end so /dev/sda1. I was able to boot into slackware but had to reformat my drive becuase I forgot the root password , anyway I went thru the same process choose sda1 once again but was never able to boot into slackware, I tried 3 times with the same result, so in my 4 attempt I just left the defualt /dev/sda which did work. But what I don't understand is how come I can edit the lilo.conf and change sda to sda1 and still boot into slackware, yes I did execute the sbin/lilo after making the chance, so I'm confused on how to utilize a separate boot. So can someone explain it to me? By the way this is my first attempt at installing any gnu/linux distro so go easy on me
 
Old 05-27-2016, 06:55 PM   #2
jailbait
LQ Guru
 
Registered: Feb 2003
Location: Virginia, USA
Distribution: Debian 12
Posts: 8,337

Rep: Reputation: 548Reputation: 548Reputation: 548Reputation: 548Reputation: 548Reputation: 548
Welcome to LinuxQuestions

[QUOTE=Slakerlife;5551954I have been adding a 1 to the end so /dev/sda1. I was able to boot into slackware but had to reformat my drive becuase I forgot the root password , anyway I went thru the same process choose sda1 once again but was never able to boot into slackware, I tried 3 times with the same result, so in my 4 attempt I just left the defualt /dev/sda which did work.[/QUOTE]

There is more than one parameter in lilo.conf where you can specify a partition name. Could you give your explanation again using full parameter names such as disk=/dev/sda1 or boot=/dev/sda.

--------------------------
Steve Stites
 
1 members found this post helpful.
Old 05-28-2016, 11:42 PM   #3
Slakerlife
Member
 
Registered: May 2016
Location: somewhere in the world!
Distribution: slackware
Posts: 66

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by jailbait View Post
Welcome to LinuxQuestions



There is more than one parameter in lilo.conf where you can specify a partition name. Could you give your explanation again using full parameter names such as disk=/dev/sda1 or boot=/dev/sda.

--------------------------
Steve Stites

Thanks jailbait, sorry for the late reply but we finally got a nice day today for a change so been busy working outdoors, anyway where is a screen shoot of my lilo file,as you can see I changed the boot=/dev/sda to boot=/dev/sda1, I added the one 1 because when I set up my partitions with fdisk I had specified /dev/sda1 as boot, I added a screen shoot to. During the installation process when slackware told be that it had automatically chosen /dev/sda I changes to /dec/sda1 as that's were my boot partition it, but I could be wrong, so what do you think
Attached Thumbnails
Click image for larger version

Name:	IMG_20160528_223033_edit.jpg
Views:	73
Size:	165.3 KB
ID:	21915   Click image for larger version

Name:	IMG_20160528_223054_edit.jpg
Views:	71
Size:	258.6 KB
ID:	21916   Click image for larger version

Name:	IMG_20160528_223106_edit.jpg
Views:	64
Size:	251.6 KB
ID:	21917  
 
Old 05-29-2016, 01:05 AM   #4
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: McKinney, Texas
Distribution: Slackware64 15.0
Posts: 3,858

Rep: Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225Reputation: 2225
Is there any particular reason why you don't simply post the contents of your /etc/lilo.conf file versus a screenshot?

I'm running Slackware64 -current on this laptop on top of LUKS and LVM. My /etc/lilo.conf contains...
Code:
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
# Append any additional kernel parameters:
append=" vt.default_utf8=0"
boot = /dev/sda

#compact        # faster, but won't work on all systems.

# Boot BMP Image.
# Bitmap in BMP format: 640x480x8
  bitmap = /boot/slack.bmp
# Menu colors (foreground, background, shadow, highlighted
# foreground, highlighted background, highlighted shadow):
  bmp-colors = 255,0,255,0,255,0
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
# be used.  We don't specify it here, as there's just one column.
  bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
  bmp-timer = 65,27,0,255

# Standard menu.
# Or, you can comment out the bitmap menu above and 
# use a boot message with the standard menu:
#message = /boot/boot_message.txt

# Wait until the timeout to boot (if commented out, boot the
# first entry immediately):
prompt
# Timeout before the first entry boots.
# This is given in tenths of a second, so 600 for every minute:
timeout = 1200
# Override dangerous defaults that rewrite the partition table:
change-rules
  reset
# Normal VGA console
vga = normal
# Ask for video mode at boot (time out to normal in 30s)
#vga = ask
# VESA framebuffer console @ 1024x768x64k
#vga=791
# VESA framebuffer console @ 1024x768x32k
#vga=790
# VESA framebuffer console @ 1024x768x256
#vga=773
# VESA framebuffer console @ 800x600x64k
#vga=788
# VESA framebuffer console @ 800x600x32k
#vga=787
# VESA framebuffer console @ 800x600x256
#vga=771
# VESA framebuffer console @ 640x480x64k
#vga=785
# VESA framebuffer console @ 640x480x32k
#vga=784
# VESA framebuffer console @ 640x480x256
#vga=769
# End LILO global section
# Linux bootable partition config begins
# initrd created with 'mkinitrd -c -k 4.4.9 -f ext4 -r /dev/cryptvg/rootlv -m jbd2:mbcache:ext4 -C /dev/sda2 -L -u -o /boot/initrd.gz'
image = /boot/vmlinuz-generic-4.4.11
  initrd = /boot/initrd.gz
  root = /dev/cryptvg/rootlv
  append = "swapaccount=1" 
  label = 4.4.11
  read-only
# Linux bootable partition config ends
The "swapaccount=1" line is there for docker support.
 
Old 05-29-2016, 11:52 AM   #5
Slakerlife
Member
 
Registered: May 2016
Location: somewhere in the world!
Distribution: slackware
Posts: 66

Original Poster
Rep: Reputation: Disabled
Hi Richard, I don't have Internet currently on that computer, so I'm left with my phone to post. Do you have a separate boot partition just for slackware?
I'm wondering where does the boot=/dev/sda point to? Becuase isn't sda just my entire hard drive

Last edited by Slakerlife; 05-29-2016 at 11:57 AM.
 
Old 05-29-2016, 01:16 PM   #6
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
boot is used because lilo typically writes to the MBR, which is not related to partitions. Then, you use the root portion to specify which partition to find the rest of the files for the distro you're booting.
 
Old 05-29-2016, 02:17 PM   #7
astrogeek
Moderator
 
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=15, FreeBSD_12{.0|.1}
Posts: 6,263
Blog Entries: 24

Rep: Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194
Lilo is easy, but also simple minded and does not second guess you.

boot = ...
Sets the location to which lilo writes the boot loader.
The default is MBR (Master Boot Record) which is /dev/sda for most of us, this is where the BIOS looks at boot time.
You can also install it to an individual partition, such as /dev/sdaX, BIOS does NOT look here at boot time so there must also be an MBR boot loader to direct the boot process to it (called chain loading).

The usefulness of /dev/sdaX is mostly for chain booting multiple distros. In this scenario, only ONE distro manages the MBR so its lilo.conf will have boot = /dev/sda, and will include other = ... stanzas pointing to the individual distro's partitions where their own boot loaders must be located. The individual distros will have boot = /dev/sdaX, where X is their root partition identifier.

In this scenario each distro must write its own boot loader to its own partition and one distro is responsible for including the other stanzas and writing to the MBR. At boot, BIOS loads from the MBR which offers options to the individual other partitions. You can mix boot loaders this way, lilo, grub, BSD. I multiboot different Slackware versions and FreeBSD this way across multiple drives - works great!

So, the first question is, "Why did you think /dev/sda1 would be the right choice?". Unless you are multibooting, the default MBR, /dev/sda is the right choce. If you had no other reason for using /dev/sda1, then don't do that.

The next question, "If you had some reason for using /dev/sda1, what was it?". You don't say that you are multi-booting, so there is probably not a good reason for using /dev/sda1. If there is a good reason, then understand that there must be an MBR boot loader also installed which will get you to the final destination.
 
2 members found this post helpful.
Old 05-29-2016, 11:01 PM   #8
Slakerlife
Member
 
Registered: May 2016
Location: somewhere in the world!
Distribution: slackware
Posts: 66

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by astrogeek View Post
So, the first question is, "Why did you think /dev/sda1 would be the right choice?". Unless you are multibooting, the default MBR, /dev/sda is the right choce. If you had no other reason for using /dev/sda1, then don't do that.

The next question, "If you had some reason for using /dev/sda1, what was it?". You don't say that you are multi-booting, so there is probably not a good reason for using /dev/sda1. If there is a good reason, then understand that there must be an MBR boot loader also installed which will get you to the final destination.
Hello

Yes that is correct I'm not multi-booting, I was following this guide
http://www.oldskoolphreak.com/tfiles/hack/slack_sec.txt

In the guide it's suggest to create 4 partitions which I have, one of the partitions to create is a dedicated /boot for loading kernel and boot loader, so I was thinking that I needed to tell lilo to load that dedicated partiton which is /dev/sda1, which I thought that all I needed to do was change the default /dev/sda to sda1. So I guees I need to do chain loading? Will that load kernel and boot loader?
 
Old 05-29-2016, 11:58 PM   #9
astrogeek
Moderator
 
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=15, FreeBSD_12{.0|.1}
Posts: 6,263
Blog Entries: 24

Rep: Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194
Quote:
Originally Posted by Slakerlife View Post
Hello

Yes that is correct I'm not multi-booting, I was following this guide
http://www.oldskoolphreak.com/tfiles/hack/slack_sec.txt

In the guide it's suggest to create 4 partitions which I have, one of the partitions to create is a dedicated /boot for loading kernel and boot loader, so I was thinking that I needed to tell lilo to load that dedicated partiton which is /dev/sda1, which I thought that all I needed to do was change the default /dev/sda to sda1. So I guees I need to do chain loading? Will that load kernel and boot loader?
No, it doesn't work that way.

If you have a separate partition for /boot, your boot loader will still need to go on the MBR.

The /boot partition and the lilo boot = /dev/sdx parameter are not related in any way.

(Note: You could chain boot, but it would be redundant and you would then need to manage two lilo.conf files - one for the MBR and one for the chained partition which could be /boot or /root or /kalamazoo).

Two really important things to note...

1. The /boot directory (i.e., kernel path), whether it is a separate partition or a directory on your /root partition, must be mounted and accessible by the path given in your lilo.conf at the time you run lilo. Lilo gets the physical location on disk and stores that with the bootloader.

2. Your /etc/fstab must be configured to mount the separate /boot partition and your /root partition, and any other separate partitions such as /var and /home if you used those.

Both of those conditions must be met at the same time in order for you to boot.

It would be helpful if you could post your lilo.conf and your /etc/fstab just so we can see what you actually have set up now.

I did a quick, but more than superficial read of the guide that you are using, and would suggest that it is badly dated as well as incomplete. It presents itself as a security guide but offers some currently really bad security advice! And after telling you to use four partitions it tells you nothing about how to set up the required boot loader... so you can't get there from here unless you already know where you are going...

I would not actually say it is a bad guide, but it indicates that it was written about 2003, there have been A LOT of changes since then! You might find it easiest to simply reinstall with a more current guide.

While I still use a separate /boot partition at times, always use lilo and most of my own systems are multi/chain boot, there is little reason for you to do that. It requires some additional complexity (multiple lilo.conf's) and management (which distro manages MBR, where do the others go...) and cannot be done in a single install pass... just use the defaaults and install to the MBR, at least until you learn your way around!

And a belated "Welcome to LQ and Slackware"!

Last edited by astrogeek; 05-30-2016 at 12:14 AM.
 
Old 05-31-2016, 12:13 AM   #10
Slakerlife
Member
 
Registered: May 2016
Location: somewhere in the world!
Distribution: slackware
Posts: 66

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by astrogeek View Post
No, it doesn't work that way.

If you have a separate partition for /boot, your boot loader will still need to go on the MBR.

The /boot partition and the lilo boot = /dev/sdx parameter are not related in any way.


It would be helpful if you could post your lilo.conf and your /etc/fstab just so we can see what you actually have set up now.

While I still use a separate /boot partition at times, always use lilo and most of my own systems are multi/chain boot, there is little reason for you to do that. It requires some additional complexity (multiple lilo.conf's) and management (which distro manages MBR, where do the others go...) and cannot be done in a single install pass... just use the defaaults and install to the MBR, at least until you learn your way around!

And a belated "Welcome to LQ and Slackware"!
Thanks astrogeeks, below is my lilo and fstab info
Code:
 
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/sda1

compact        # faster, but won't work on all systems.

# Boot BMP Image.
# Bitmap in BMP format: 640x480x8
  bitmap = /boot/slack.bmp
# Menu colors (foreground, background, shadow, highlighted
# foreground, highlighted background, highlighted shadow):
  bmp-colors = 255,0,255,0,255,0
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
# be used.  We don't specify it here, as there's just one column.
  bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
  bmp-timer = 65,27,0,255
# Standard menu.
# Or, you can comment out the bitmap menu above and
# use a boot message with the standard menu:
#message = /boot/boot_message.txt

# Append any additional kernel parameters:
append=" vt.default_utf8=0"
prompt
timeout = 300
# VESA framebuffer console @ 1024x768x32k
vga = 790
# Normal VGA console
#vga = normal
# Ask for video mode at boot (time out to normal in 30s)
#vga = ask
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
#End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz
  root = /dev/sda3
  label = Slackie
  read-only
# Linux bootable partition config end
and fstab

Code:
dev/sda2        swap             swap        defaults         0   0
/dev/sda3        /                ext4        defaults         1   1
#/dev/cdrom      /mnt/cdrom       auto        noauto,owner,ro,comment=x-gvfs-sho
w 0   0
/dev/fd0         /mnt/floppy      auto        noauto,owner     0   0
devpts           /dev/pts         devpts      gid=5,mode=620   0   0
proc             /proc            proc        defaults         0   0
tmpfs            /dev/shm         tmpfs       defaults         0   0
I guess I wanted to separate boot to add some extra security to slackware, or at least that is how the guide puts it, to prevent an attacker from working his magic. I can certainly erase this HD and start fresh i dont have anything on this PC
 
Old 05-31-2016, 01:11 AM   #11
astrogeek
Moderator
 
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=15, FreeBSD_12{.0|.1}
Posts: 6,263
Blog Entries: 24

Rep: Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194Reputation: 4194
OK thanks!

Here are the important lines frorm the lilo.conf:

Code:
boot = /dev/sda1
...
image = /boot/vmlinuz
  root = /dev/sda3
  label = Slackie
So your / partition is on /dev/sda3, sounds right.

Now, the fstab has two problems, one is maybe a typo...?

Code:
dev/sda2        swap  ...
Did you simply not copy/paste the leading '/', or is it missing in the fstab file? It needs it, should be...

Code:
/dev/sda2        swap  ...
But there is no entry for /dev/sda1 /boot ...?

If you actually installed using /dev/sda1 as /boot, the installer would have added a line similar to this to your /etc/fstab:

Code:
/dev/sda1        /boot            ext2        defaults         1   2
Since it is not there, it leads me to believe that you did not specify a separate /boot partition as you think you did.

If that is the case, and if this is the actual fstab created by the installer, then you can probably simply change...

Code:
boot = /dev/sda1

to

boot = /dev/sda
... and rerun lilo, then boot. Let's try it...

I assume that you can boot into the install media and mount the root partition, but here is step by step...

Code:
1. Boot into install media and login as root
2. Make a temporary mount point...
    mkdir /slackroot
3. Mount the / partition from the hard drive...
    mount /dev/sda3 /slackroot
4. Peek into it and see if the /boot directory is really there with kernels in it...
    ls /slackroot/boot
5. IF you saw kernels and other stuff in step 4 we are good to go.
   IF you did not see kernels in step 4 that means the /boot directory is elsewhere - stop and see next box...
6. Mount and bind /dev and /proc into slackroot and chroot into it...
   mount --bind /proc /slackroot/proc
   mount --bind /dev /slackroot/dev
   chroot /slackroot
7. You should now be running in the hard drive / partition, so edit lilo.conf and reinstall...
   vim /etc/lilo.conf change to boot = /dev/sda
   lilo
8. If no error messsages, exit from chroot, reboot.
In step 4 above, if there was no boot directory, or no kernels in it, then lets try to locate it...

Code:
...continuing from step 4 in previous box...
5. If there is no boot directory under the mounted /dev/sda3, lets make one...
   mkdir /slackroot/boot
6. Now mount /dev/sda1 to that location and see what is inside...
   mount /dev/sda1 /slackroot/boot
   ls /slackroot/boot
7. IF there are still no kernels in /slackroot/boot... we don't know where they are, so bail...
   IF there are kernels there then /dev/sda1 is your /boot partition, so add a line for it in /slackroot/etc/fstab...
   vim /slackroot/etc/fstab and add the following line (assumes ext2 fs)
      /dev/sda1        /boot            ext2        defaults         1   2
8. If no problems indicated, jump to step 6 in previous box, mount /dev and /proc, chroot, edit lilo.conf and run lilo...
Now, we have ignored a few potential problems along the way. One is the guide you followed used a separate /var partition, which is also not in your fstab, which we are assuming means that you did not actually install to it, so it too should be under / on /dev/sda3. If not... probably the best solution at that point would be to simply reinstall using a single / partition without separate /boot and /var, install lilo to MBR and be done with it.

But I think it would be very beneficial to at least try the above steps, just as a learning exercise - it is always a good way to recover a botched system in any event!

Good luck!

Last edited by astrogeek; 05-31-2016 at 01:15 AM. Reason: tpos, typs, typos
 
Old 07-24-2016, 10:18 AM   #12
slac-in-the-box
Member
 
Registered: Mar 2010
Location: oregon
Distribution: slackware64-15.0 / slarm64-current
Posts: 780
Blog Entries: 1

Rep: Reputation: 432Reputation: 432Reputation: 432Reputation: 432Reputation: 432
Sounds like you confused the MBR table with the /boot folder--which, btw, doesn't have to be on a separate partition at all; but if you do put it on a separate partition, make sure it gets added to you fstab (as described above). When the expert option of lilo config, during setup, automatically chose /dev/sda, it chose correctly, because this is where the MBR resides. From wikipedia:
Quote:
The MBR consists of 512 or more bytes located in the first sector of the drive.

It may contain one or more of:

A partition table describing the partitions of a storage device. In this context the boot sector may also be called a partition sector.
Bootstrap code: Instructions to identify the configured bootable partition, then load and execute its volume boot record (VBR) as a chain loader.
Optional 32-bit disk timestamp.[3]
Optional 32-bit disk signature.[5][6][7][8]
So that part of the lilo config is just configuring which disk to store the bootstrap code, not which partition to store the kernels.

When using setup, and selecting target for root, your other partitions are there, and it asks where you want them mounted. Just tell it to mount your fist partition to /boot, and it will add it to your fstab for you. And during the setup lilo part, don't add the 1 to the end of /dev/sda, when lilo automatically determined /dev/sda to be where you want to install bootloader. Finish the setup process. What you have should boot.

If you want to try LVM, before you run setup, you can mount the slackware tree and read the README about it:

assuming that you only have one drive, so the install media is detected as sdb:
Code:
mkdir /mountpoint
mount -t vfat /dev/sdb1 /mountpoint 
cd /mountpoint/slackware64-14.2/
less README_LVM.txt
cd /
umount /mountpoint
setup
(be sure you unmount the slackware tree before running setup, as setup needs it and will mount it in a different location that takes longer to type).
 
Old 08-08-2016, 11:47 AM   #13
Slakerlife
Member
 
Registered: May 2016
Location: somewhere in the world!
Distribution: slackware
Posts: 66

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by astrogeek View Post
But I think it would be very beneficial to at least try the above steps, just as a learning exercise - it is always a good way to recover a botched system in any event!

Good luck!
Astrogeek, I forgot to replay but I did try your solution and it worked, just as an exercise I broke my lilo config and fixed it with your notes, ill keep them handy, Thanks

Last edited by Slakerlife; 08-08-2016 at 11:49 AM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Is there any benefit of making a separate partition for home, root and boot partition Vexe Linux - Hardware 18 02-23-2013 11:00 AM
separate /boot partition, why? sluge Linux - Newbie 1 03-12-2012 02:24 AM
Dual boot, two HDs. Separate /boot partition advisable? mailforbiz Ubuntu 3 06-14-2007 10:15 AM
/boot separate partition energiya Linux - General 7 03-27-2007 03:18 PM
[SOLVED] Moving /boot to separate partition and using 'grub' to boot eldiener Linux - General 4 11-28-2006 08:01 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - Installation

All times are GMT -5. The time now is 11:57 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration