If you always look up to the mountains, it will dampen our courage to climb, so that we stand still. What we need to do is
is to take the step, take the first steps, let ' s go!
There are generally three ways to crop Linux:
1, based on an already installed system, remove unwanted software and files to reduce the overall system size;
2, from the beginning to customize the entire system according to needs;
3, install a complete Linux system, and then copy the necessary software, files, kernels, etc. to build a small system.
The first method is practically infeasible in practice. Because it is difficult to determine what needs to be removed, and those
Things can not be deleted, if deleted files should not be deleted, it is easy to cause system instability or some application error;
The second and third methods are similar, the third method is simpler, but it is limited by the host system, the latter method is more complex, but
More flexibility. We take the second approach.
The final ISO file will include three parts: a custom-built Linux, boot system, and installation script. guided in it
The system is composed of grub, INITRAMFS, kernel and three parts.
Principle
Boot Loader is required when the computer starts, and the boot Loader task is to set the onboard core from the boot,
boot the system to run, we are make with Grub to do the bootloader. Grub Loads the kernel, and all 2.6 versions of the Linux kernel have a
a special file system Rootfs, is kernel-initiated Initial start root file System, when the kernel boot is complete, the Initramfs
text pieces Copy to Rootfs, as the initial root filesystem of the kernel, its task is to mount the system's real root file system.
The boot system is equivalent to a miniature Linux, which is copied from the custom Linux, including the small part of the custom Linux
Sub-function, the difference is that the boot system is booted from CD directly to the Linux interface. After booting the boot system to the command line interface, I
First partition the hard disk, then unzip the custom Linux into the appropriate partition and modify the grub to boot from the hard disk. Rebooting the system
into a custom Linux environment.
Customization of Linux
Our approach to customizing Linux takes the second approach mentioned in the preamble, which is commonly referred to as LFS (Linux from Scratch).
This method is simply to manually download, compile, and install the software packages that are needed. Although this method is more "stupid", it has the following advantages:
1, it gives users more control over the system, rather than relying on some people's Linux implementation.
2, it can create a very compact Linux system, even small to a few megabytes.
3, it has reliable security. By compiling the entire system from the source, you are able to review everything and get all the security patches.
Below we introduce the process of LFS.
Preparatory work
1, in advance to download the required package source code, packages have dependencies between each other, download should pay attention to download all;
You can also use others have downloaded good, for example, some distributions have a variety of software package source code.
2, can choose to make on the virtual machine, also can be made on the real machine. If you create a virtual machine, you need to do
Configuration of the machine, such as SCSI adpters settings, the kernel configuration method is also different.
3, download a bootable CD as the environment for making LFS.
4, there are some useful articles on the http://www.linuxsir.org/website to guide the installation.
Building LFS Systems
The steps to build the LFS system are as follows:
1. Build a temporary compilation environment
2. Installation system basic software
3. Configuring the Kernel
4. Configure the System startup script
The 1th, 2 steps in Jin Bu's "Linux Thorough Customization Guide" has been described in detail, if necessary
I can provide it, or I can download it on the Internet. Following the methods provided on these networks is generally not a problem,
However, due to the different production environment may have some problems, as long as patience and perseverance can be solved.
Kernel configuration
Enter the following command:
CD linux-2.6.* //Enter the directory where the Linux source code resides
Make Mrproper
Make Menuconfig
In the interface, configure as follows:
Device Drivers--->
SCSI Device Support--->
<*> SCSI Device Support
<*> SCSI Disk Support
SCSI Low-level Drivers--->
<*> BusLogic SCSI Support
Device Drivers--->
ATA/ATAPI/MFM/RLL Support--->
<*> Enhanced Ide/mfm/rll disk/cdrom/tape/floppy support
<*> Include Ide/atapi CDROM Support
[*] PCI IDE chipset Support
[*] Generic PCI bus-master DMA Support
<*> Intel PIIXN chipsets support
File Systems--->
Cd-rom/dvd filesystems--->
<*> ISO 9660 CDROM File system support
[*] Microsoft Joliet CDROM Extensions
After saving exit, enter the following command:
Make
Make Modules_install
Cp-v arch/i386/boot/bzimage/boot/lfskernel-*
Cp-v system.map/boot/system.map-*
Cp-v. config/boot/config-*
Install-d/usr/share/doc/linux-*
Cp-r documentation/*/usr/share/doc/linux-*
Many of the problems in making LFS are due to improper kernel configuration, please note!
Configuring the System startup script
/etc/fstab file:
/dev/ ext3 Defaults 1 1
/dev/sda1Swap swap Pri=1 0 0
PROC/PROC proc Defaults 0 0
Sysfs/sys Sysfs Defaults 0 0
Devpts/dev/pts devpts gid=4,mode=620 0 0
SHM/DEV/SHM TMPFS Defaults 0 0
The part marked in red please note, please follow your own situation to modify. Typical SATA drives are sda1 and sda2,
IDE hard drives are hda1 and hda2. The file system format of the root directory is as specific as it should be.
/boot/grub/menu.lst file:
Default 0
Timeout 5
Color Green/black Light-green/black
Title Gwlinux 1.0
Root (hd0,1)
kernel/boot/lfskernel-* root=/dev/sda2
The part marked in red please note, please follow your own situation to modify. How to represent a disk in grub
Not quite the same as in/dev,/dev/hda2 is represented as (hd0,1) in grub, and/DEV/HDB1 is represented as (hd1,0),
The way SCSI is represented is also different/dev/sda2 is also represented as (hd0,1).
The method of recovering the working state of each stage in LFS process
The production time of the LFS is long, and sometimes must not be shut down and then restarted and restored to work
The following are the recovery methods for each stage of the LFS process.
Http://www.linuxsir.org/bbs/thread322895.html
Paste as follows:
Start ~4.4. Setting up the environment
All right, there's nothing to be regretted.
4.5. About sbus~5.33. Stripping
From now until the end of chapter fifth, that is, completing the stripping intermediate step if you restart the recovery step:
1. Restart the computer and boot from LiveCD
2. Loading partitions
Export Lfs=/mnt/lfs
MKDIR-PV $LFS
Mount/dev/sda2 $LFS
3. Load the Swap partition (skip this step if you do not want to swap the partition or have no swap partition)
Swapon/dev/sda1
4. Create a link to the tool chain
LN-SV $LFS/tools/
5. Create LFS Users
Groupadd LFS
Useradd-s/bin/bash-g lfs-m-k/dev/null LFS
passwd LFS
Chown-v LFS $LFS/tools
Chown-v LFS $LFS/sources
Su-lfs
6. Setting up the environment for LFS users
Cat > ~/.bash_profile << "EOF"
EXEC env-i home= $HOME term= $TERM ps1= ' \u:\w\$ '/bin/bash
Eof
Cat > ~/.BASHRC << "EOF"
Set +h
Umask 022
Lfs=/mnt/lfs
Lc_all=posix
Path=/tools/bin:/bin:/usr/bin
Export LFS Lc_all PATH
Eof
SOURCE ~/.bash_profile
7. Check
Export command to view the output, which should be
Declare-x home= "/home/lfs"
Declare-x lc_all= "POSIX"
Declare-x lfs= "/mnt/lfs"
Declare-x oldpwd
Declare-x path= "/tools/bin:/bin:/usr/bin"
Declare-x ps1= "\\u:\\w\\\$"
Declare-x pwd= "/home/lfs"
Declare-x shlvl= "1"
Declare-x term= "Linux"
Basically, it's back to work.
6.1. Introduction
This time maybe you want to sleep shutdown, then back to work after rebooting the steps are:
1. Restart the computer and boot from LiveCD
2. Loading partitions
Export Lfs=/mnt/lfs
MKDIR-PV $LFS
Mount/dev/sda2 $LFS
3. Load the Swap partition (skip this step if you do not want to swap the partition or have no swap partition)
Swapon/dev/sda1
Relevant knowledge points:
Now that the toolchain has been created, it is not necessary to establish tools links in the root directory.
6.2. Mounting Virtual Kernel File systems~6.8. Populating/dev
This time if you shut down or reboot, then the steps to return to work after rebooting are:
1. Restart the computer and boot from LiveCD
2. Loading partitions
Export Lfs=/mnt/lfs
MKDIR-PV $LFS
Mount/dev/sda2 $LFS
3. Load the Swap partition (skip this step if you do not want to swap the partition or have no swap partition)
Swapon/dev/sda1
4. Loading the necessary file system
Mount-v--bind/dev $LFS/dev
MOUNT-VT devpts devpts $LFS/dev/pts
MOUNT-VT Tmpfs SHM $LFS/DEV/SHM
MOUNT-VT proc proc $LFS/proc
MOUNT-VT Sysfs Sysfs $LFS/sys
5.Chroot to target system
Chroot "$LFS"/tools/bin/env-i \
Home=/root term= "$TERM" ps1= ' \u:\w\$ ' \
Path=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash--login +h
6.9. linux-libc-headers-2.6.11.2~6.59. Stripping Again
From now on until the sixth chapter of stripping again, this phase if you shut down or reboot, then the steps back to the working state after rebooting are:
1. Restart the computer and boot from LiveCD
2. Loading partitions
Export Lfs=/mnt/lfs
MKDIR-PV $LFS
Mount/dev/sda2 $LFS
3. Load the Swap partition (skip this step if you do not want to swap the partition or have no swap partition)
Swapon/dev/sda1
4. Loading the necessary file system
Mount-v--bind/dev $LFS/dev
MOUNT-VT devpts devpts $LFS/dev/pts
MOUNT-VT Tmpfs SHM $LFS/DEV/SHM
MOUNT-VT proc proc $LFS/proc
MOUNT-VT Sysfs Sysfs $LFS/sys
5.Chroot to target system
Chroot "$LFS"/tools/bin/env-i \
Home=/root term= "$TERM" ps1= ' \u:\w\$ ' \
Path=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/bin/bash--login +h
6. Go to the compilation directory
Cd/sources
6.61. Stripping Again
If you restart now, then the steps to return to work after rebooting are:
1. Restart the computer and boot from LiveCD
2. Loading partitions
Export Lfs=/mnt/lfs
MKDIR-PV $LFS
Mount/dev/sda2 $LFS
3. Load the Swap partition (skip this step if you do not want to swap the partition or have no swap partition)
Swapon/dev/sda1
4. Loading the necessary file system
Mount-v--bind/dev $LFS/dev
MOUNT-VT devpts devpts $LFS/dev/pts
MOUNT-VT Tmpfs SHM $LFS/DEV/SHM
MOUNT-VT proc proc $LFS/proc
MOUNT-VT Sysfs Sysfs $LFS/sys
5.Chroot to target system
Chroot "$LFS"/tools/bin/env-i \
Home=/root term= "$TERM" ps1= ' \u:\w\$ ' \
Path=/bin:/usr/bin:/sbin:/usr/sbin \
/tools/bin/bash--login
6.62. Cleaning up~ End
From now until the end of production, the steps to return to the working state after rebooting are:
1. Restart the computer and boot from LiveCD
2. Loading partitions
Export Lfs=/mnt/lfs
MKDIR-PV $LFS
Mount/dev/sda2 $LFS
3. Load the Swap partition (skip this step if you do not want to swap the partition or have no swap partition)
Swapon/dev/sda1
4. Loading the necessary file system
Mount-v--bind/dev $LFS/dev
MOUNT-VT devpts devpts $LFS/dev/pts
MOUNT-VT Tmpfs SHM $LFS/DEV/SHM
MOUNT-VT proc proc $LFS/proc
MOUNT-VT Sysfs Sysfs $LFS/sys
5.Chroot to target system
Chroot "$LFS"/usr/bin/env-i \
Home=/root term= "$TERM" ps1= ' \u:\w\$ ' \
Path=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash--login
6. Go to the compilation directory
Cd/sources
Customization and release of Linux (i)