1.《鸟哥的Linux私房菜》P219:“Linux的档案属性与目录配置”讲到的权限很有用,只是有些地方不是很明白。有空再琢磨琢磨,实践实践。
2.《鸟哥的Linux私房菜》P238:home目录的缩写符号是“~”,比如:
“~”表示当前用户的home目录;
“~soft”则表示soft用户的home目录。
3.《鸟哥的Linux私房菜》P238:书上说/bin、/usr/bin和/usr/local/bin里面是用户执行的二进制文件,而/sbin、/usr/sbin和/usr/local/sbin里面则是系统管理员执行的二进制文件。但是我用ls -al查看文件权限发现,两种目录里面文件的权限好像没什么区别,为什么?
4.《鸟哥的Linux私房菜》P251:“inode本身并不纪录文件名,而是记录档案的相关属性,至于文件名则是记录在目录所属的block 区域!”--这可以解释笔记1中关于权限的一些疑问。
5. 《LFS-BOOK-6.8》P33 - 2.4. Mounting the New Partition
在/etc/environment文件中添加一行:
LFS="/mnt/lfs"
重启后,所有用户(包括su)都拥有这个环境变量。
此外,Ubuntu基于Debian,其sudo在执行命令时出于安全考虑,会将环境变量重置。
因此,在作系统相关操作时,我觉得还是使用su的好。
相关参考:
http://www.troubleshooters.com/linux/prepostpath.htm
http://serverfault.com/questions/62178/how-to-specify-roots-environment-variable
6. 《LFS-BOOK-6.8》P33 - 2.4. Mounting the New Partition
该小节所讲的配置命令,在宿主机重启后,都会被重置。书中并没有提到这个问题。
似乎有必要写一个脚本,在每次重启后运行:
cat > mount-lfs-part.sh << "EOF"
#!/bin/bash
# Mount the root partition for LFS.
# Modify /dev/sda14 to meet the actual partition, if needed
mount -v -t ext3 /dev/sda14 $LFS
# Mount other partitions for LFS.
# Modify /dev/<xxx> to meet the actual partition, if needed
mount -v -t ext3 /dev/sda16 $LFS/boot
mount -v -t ext3 /dev/sda17 $LFS/home
mount -v -t ext3 /dev/sda18 $LFS/usr
mount -v -t ext3 /dev/sda19 $LFS/opt
mount -v -t ext3 /dev/sda20 $LFS/tmp
# enable swap partition
# Modify /dev/sda15 to meet the actual partition, if needed
#swapon -v /dev/sda15
EOF
7. 板载网卡RTL8101E在Ubuntu 11.04下的驱动安装
由于Ubuntu 11.04会错误地为该网卡安装r8169驱动,导致无法使用,需要手动安装。
(1)到Realtek主页www.realtek.com.tw下载该网卡的Linux驱动。
(2)将驱动包解压后安装提示安装,安装完成后即可使用以太网。但此时如果重启Ubuntu,仍会重新加载r8169驱动。
(3)将r8101添加到/etc/modules文件,将blacklist r8169添加到/etc/modprobe.d/blacklist.conf文件,然后运行update-initramfs -u。此时r8101将在重启时加载。
参考:http://askubuntu.com/questions/24334/how-do-i-permanently-load-a-kernel-module
8. Ubuntu 11.04 GRUB启动顺序修改
(1)查看/boot/grub/grub.cfg文件,其启动项具有以下结构:
menuentry "入口名称" {
}
submenu "入口名称" {
menuentry "入口名称" {
}
}
同时可以使用命令cat /boot/grub/grub.cfg | grep menuentry获得列表。
(2)确定位置后,编辑/etc/default/grub文件
将GRUB_DEFAULT的值改为第(1)步确定的位置,从0开始。
(3)运行update-grub重新生成/boot/grub/grub.cfg文件。
9. 《LFS-BOOK-6.8》P97 - 6.4. Entering the Chroot Environment
每次离开chroot环境后(如重启),都要重新运行6.2.2. Mounting and Populating /dev和6.2.3. Mounting Virtual Kernel File Systems里面的内容,然后进入chroot。
进入chroot后,提示符是“I have no name!”。要根据6.6. Creating Essential Files and Symlinks的方法将其修改。
不过最后好像发现不用每次都运行exec /tools/bin/bash --login +h,原因未明。
因此,写了个脚本enter_chroot_env.sh,每次需要时运行:
#Mounting and Populating /dev
mount -v --bind /dev $LFS/dev
#Mounting Virtual Kernel File Systems
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
#Entering the Chroot Environment
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
#Remove the "I have no name!" prompt
#exec /tools/bin/bash --login +h
10. 《LFS-BOOK-6.8》6.64. Cleaning Up
从这一节开始,进入chroot命令改为
chroot "$LFS" /usr/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login
因为此时不再需要/tools目录里面的程序。将修改更新到脚本enter_chroot_env.sh。
11. Linux系统备份命令实例:
进入/mnt目录
time tar -cjvvpf /home/zoogar/lfs_bak/lfs.tar.bz2 lfs > /home/zoogar/lfs_bak/tar.log
另一例子
tar --preserve-permissions --preserve-order --exclude=dev --exclude=lost+found -cjvvf /home/ux30/lfs/ROOT.tar.bz2 lfs
解压时要加上--preserve-permissions --preserve-order
对于/分区,解压后需要创建/dev目录及Nodes,详见第21点。
12. 《BLFS-6.3.pdf》P54 - Creating Log Files During Installation
( <command> 2>&1 | tee compile.log && exit $PIPESTATUS )
此命令格式的效果是:执行<command>命令,将错误信息重定位到标准输出,同时向complie.log文件输出执行信息,exit $PIPESTATUS保证了整个命令作为子shell时(用括号括起来),其返回值不是tee命令的返回值,而是<command>命令的返回,值。
13. 《BLFS-6.3.pdf》P54 - File Redirection to Automate Input
使用文件重定位输入来自动回答编译时的询问,从而达到执行自动化。如:
make check < ../cups-1.1.23-testsuite_parms
14. 《BLFS-6.3.pdf》P55 - Using yes to Automate Input
格式:yes '[string]' | <command>
yes命令默认输出y。当string为空时,相当于回车。
15. 《BLFS-6.3.pdf》P56 - File Redirection to Automate Output
对于需要翻页的输出,可以通过重定位实现自动跳过。例如:
ls -l /usr/bin | more > redirect_test.log 2>&1
进一步,某些license agreement需要翻页,并且在最后要按y来同意。可以这样实现:
yes | <command> > command.log 2>&1
16. 公司联想电脑做LFS6.8遇到的Kernel panic- not syncing: VFS: Unable to mount root fs on unknown-block (xx,xx)问题解决(2011.9.23上午)
在网上查了一下,这类问题的原因也是多种多样。尝试了网上的许多办法后,都无法解决。
奇怪的是,家里的华硕EeePC 1000HE没有碰到这个问题,LFS系统很快就做好了。
折腾了大概一个星期,还是无果。今天上午无意中看到一篇帖子:http://ubuntuforums.org/showthread.php?t=1618195
帖子里说:often seen recently, check your bios to set it on: AHCI or better on COMPATIBLE if you have the choice (check for bios update too)
于是我决定看看BIOS。将联想BIOS里面的SATA模式由IDE改为AHCI,启动LFS系统,成功!
不过发现Ubuntu 11.04无法启动,后来启动其恢复模式后,也解决了。
由于原来修改了一些内核编译选项,为了确认,使用默认的选项:
make mrproper
make menuconfig -->直接exit保存
make
...
也正常启动。
17. blfs-book-svn-html-2011-10-14: 13. Connecting to a Network
这里没有讲到将ipv4-static的ONBOOT="yes"改为ONBOOT="on",导致启动后有两个地址:一个静态IP地址,一个DHCP获得的地址。
18. 今天将lfs6.8-lenovo-2011092301.tar.bz2复制到ASUS UX30笔记本中,出现了mounting kernel-based file systems:/procmount的问题。
复制的过程也很麻烦,因为当初没有按照http://www.linuxfromscratch.org/hints/downloads/files/backing-up-lfs.txt来进行备份,而是把整个$LFS/都打包。
后来看到帖子http://www.linuxsir.org/bbs/thread346672.html,跟我的错误有点类似,于是重新编译安装util-linux(没有重编译perl,因为util-linux安装时没有出错)。
重装完util-linux后重启就OK了。
那应该也是mount程序出了问题,不知道是不是我的备份方法不对引起的。
19. PGP公钥导入
gpg --keyserver subkeys.pgp.net --recv 8位钥匙号
20. 设置分区的label
e2label device [ new-label ]
21. (2011.12.17 13:50) 今天将ux30的blfs备份解压到Dell Optiplex-380上,启动时提示rc used greatest stack depth,然后停住。
blfs备份和解压是按照第11点上的“另一例子”进行的。刚才查了一下网上,帖子http://www.linuxsir.org/bbs/thread377917.html说是/dev目录的问题。
由于备份时加了--exclude=dev,因此/dev目录是没有的。即使不加--exclude=dev,实际上/dev目录里面的Device Nodes也是会备份失败。
解决办法是按照LFS6.8的6.2. Preparing Virtual Kernel File Systems重新创建目录和Nodes:
mkdir -v $LFS/dev
mknod -m 600 $LFS/dev/console c 5 1
mknod -m 666 $LFS/dev/null c 1 3
重启,问题解决。
22. (2011.12.17 14:50) 将blfs解压到dell optiplex-380后,出现无法重启的问题,重启命令后出现PCI INT A Disabled,最后在machine restart挂住。
poweroff可以关机,但是关机重开后,启动异常。进入single模式后,重启(失败)后又可以重新进入多用户模式。
根据帖子http://groups.google.com/group/kernelarchive/browse_thread/thread/03242a58b2560533/21e92808e0c76600?在grub.cfg中添加reboot=force,可以重启。
不知道是什么原因,也不知道根本问题解决了没有。会不会更后来在BLFS中安装的包有关?
23. ubuntu下将dos文本转换成unix文本
ubuntu没有dos2unix的安装包,使用tofrodos替代。
安装好tofrodos后,使用“fromdos 文件名”进行转换。
http://www.ylmf.net/ubuntu/guide/201011028183.html
24. (2011.12.19 9:47) Dell Optiplex-380的LFS以太网没有起来(32位系统),今天准备解决这个问题。
lspci查看:
Network: eth0: Broadcom NetLink BCM57780 Gigabit PCIe, 14:fe:b5:f0:47:cc
根据LFS6.8 - 7.13. Configuring the network Script查看网络规则:
cat /etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x1969:0x1063 (atl1c)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="90:e6:ba:3a:b2:c5", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
这个不对,是原来ux30的网卡。
于是重新生成网络规则,并将原来的网卡注掉。
重启,还是不行。
dmesg查看,有这么一段:
[ 1.672105] tg3.c:v3.115 (October 14, 2010)
[ 1.672220] tg3 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 1.672339] tg3 0000:02:00.0: setting latency timer to 64
[ 1.688623] tg3 mdio bus: probed
[ 1.688731] tg3 0000:02:00.0: No PHY devices
[ 1.688884] tg3 0000:02:00.0: Problem fetching invariants of chip, aborting
[ 1.689013] tg3 0000:02:00.0: PCI INT A disabled
查看内核配置,Broadcom Tigon3 support已经编译进去。
google一下,看到这个帖子https://bugzilla.redhat.com/show_bug.cgi?id=525966,似乎就是我遇到的问题。我的dmesg提示No PHY devices,那就是加载tg3时发现没有Broadcom的PHY。
查看内核配置,发现居然Broadcom的PHY没有配置,位置在:
| -> Device Drivers
| -> Network device support
| -> PHY Device support and infrastructure
| ->Drivers for Broadcom PHYs
选上后重新编译内核,重启,eth0 OK。
25. (2011.12.20 15:04) 安装OpenSSH-5.9p1后,无法访问。查看启动,提示/lib/lsb/init-functions找不到。
原因是blfs的启动脚本blfs-bootscripts-20111028.tar.bz2中的sshd是基于LFS7.0的启动脚本。
于是把BLFS6.3的启动脚本blfs-bootscripts-20080816.tar.bz2找到,重新运行make install-sshd,问题解决。
26. 解压xz文件:
xz -dk 文件名
其中-d是解压,-k是保留xz文件。
27. Ubuntu 10.04对于Intel915显卡的支持有问题,频繁死机。解决办法是在grub.cfg文件的quiet splash后面添加i915.modset=1。
本文记录了LFS (Linux From Scratch) 和 BLFS (Beyond Linux From Scratch) 的安装过程与常见问题解决方法,包括目录配置、权限理解、网络配置、启动脚本修改等内容。
7834

被折叠的 条评论
为什么被折叠?



