找回密码
 骑士注册

QQ登录

微博登录


Linux / Unix:chroot 命令实例讲解

2014-05-22 23:13    评论: 9 收藏: 6 分享: 2    

用 chroot 救援和修复软件RAID(磁盘阵列)系统

我先假设基于软RAID的 Linux 系统无法正常启动。所以你需要用Live CD或用基于网络的内核应急模式来修复系统。在这个例子中,我用了 Live Linux DVD/CD 启动一个基于 RHEL 的系统,然后再 chroot 到 /dev/sda1 和 /或 /dev/md0 修复问题:

## 在 Live CD 的提示符下,键入以下命令来恢复数据。##
## /dev/sda1 系统主分区##
# 建立 jail 目录
d=/chroot
mkdir $d

# 挂载 sda1 和其他所需目录
mount /dev/sda1 $d
mount -o bind /dev $d/dev
mount -o bind /sys $d/sys
mount -o bind /dev/shm $d/dev/shm
mount -o bind /proc $d/proc

# 挂载软件RAID /dev/md0
mount /dev/md0 $d/data

# Chroot 到我们新建的 jail 中。这将允许我们修复引导装载系统(bootloader),或者在所有文件被/dev/null吞噬之前抓取数据。
chroot $d

#你能看见吗?
ls
df

# 将文件置入安全路径
rsync -avr /path/to/my_precious_data_dir user@safe.location.cyberciti.biz:/path/to/dest

# 退出 jail ,然后重启或者根据个人所需格式化服务 ;)
exit
umount {dev,sys,[...],}
reboot

别急,还有更精彩的内容!

查看nixCraft下所有其他有关 chroot 命令的文章:

  1. Ubuntu: Mount Encrypted Home Directory (~/.private) From an Ubuntu Live CD
  2. Linux Configure rssh Chroot Jail To Lock Users To Their Home Directories Only
  3. Fix a dual boot MS-Windows XP/Vista/7/Server and Linux problem
  4. Restore Debian Linux Grub boot loader

在 Linux 和 类Unix 系统下 chroot 应用程序的注意事项

你应该在各种情况下都用 chroot 特性吗?从上面的例子看出,这个程序是相当简单的,但是最终可能出现几种不同的问题而结束,例如:

1.在 jail 中缺失库文件可能直接导致 jail 崩溃。 1.一些复杂的程序不好被 chroot。所以我建议你要么尝试真正的jail,例如FreeBSD提供的,要么用虚拟化解决,比如Linux 下的 KVM。 1.正在运行某一程序的 jail 不能再运行其他程序,不能更改任何文件,也不能"假设"另一个用户的身份。放宽这些限制,会降低你的安全性,请根据具体情况 chroot。

还要注意:

  1. 当你升级本地程序时,不要忘记升级已 chroot 的程序。
  2. 并非所有程序能够或者应该被 chroot。
  3. 任何需要 root 权限操作的程序,对其 chroot 是没意义的。因为通常 root 用户都能脱离 chroot。
  4. Chroot 并不一个高招。更多的可以学习如何保护和加强系统的各个部分

choort 部分命令选项

取自 man 帮助页面chroot(8):

  --userspec=USER:GROUP  使用指定的 用户 和 组 (ID 或 名称)
  --groups=G_LIST        指定补充组 g1,g2,..,gN 
      --help     显示帮助并退出
      --version  显示版本信息并退出

参见


via: http://www.cyberciti.biz/faq/unix-linux-chroot-command-examples-usage-syntax/ 

译者:Luoxcat 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

12
查看其它分页:

最新评论

我也要发表评论

na-zw 2014-05-23 12:14  新浪微博网友评论 回复
@我的印象笔记
耐特白 2014-05-23 09:15  新浪微博网友评论 回复
chroot 花了我多少闲暇时间…//@Linux中国:回复@果壳中的米特尼克:[赞] //@果壳中的米特尼克:说得简单了点,实际使用上chroot之前最好把环境变量设了,如果需要,proc sys dev 都mount 上。看一遍gentoo的安装手册会大有裨益。最后插一句,chroot是一种很简单的虚拟化技术。
Linux中国 2014-05-23 09:15  新浪微博网友评论 回复
回复@果壳中的米特尼克:[赞] //@果壳中的米特尼克:说得简单了点,实际使用上chroot之前最好把环境变量设了,如果需要,proc sys dev 都mount 上。看一遍gentoo的安装手册会大有裨益。最后插一句,chroot是一种很简单的虚拟化技术。
Linux中国 2014-05-23 09:15  新浪微博网友评论 回复
回复@果壳中的米特尼克:[赞]
买不起书的Smilent 2014-05-23 09:15  新浪微博网友评论 回复
@mark
果壳中的米特尼克 2014-05-23 09:15  新浪微博网友评论 回复
说得简单了点,实际使用上chroot之前最好把环境变量设了,如果需要,proc sys dev 都mount 上。看一遍gentoo的安装手册会大有裨益。最后插一句,chroot是一种很简单的虚拟化技术。
AlbertYzY 2014-05-23 09:15  新浪微博网友评论 回复
@我的印象笔记
颓颓熊 2014-05-23 09:15  新浪微博网友评论 回复
@我的印象笔记
爱开源的钟情GNOME 2014-05-23 09:15  新浪微博网友评论 回复
转发微博.

LCTT 译者

共计翻译: 39 篇 | 共计贡献: 55
贡献时间:2014-05-21 -> 2014-07-14
访问我的 LCTT 主页 | 在 GitHub 上关注我

收藏

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。