
因为util具有简单易用,功能强大,跨平台等诸多优点,广泛应用于开源项目中,所以util性能很好。
util-linux是一个开放源码的软件包,是一个对任何Linux系统的基本工具套件。含有一些标准UNIX工具,如login。Util-linux软件包包含许多工具。
linux系统被误删除文件,进不了系统了,里面的数据很重要,为了把硬盘中的数据进行恢复,想了多个办法,当然很多办法是可行的,比如把硬盘拿下来挂在另一个linux系统上,把数据考出来比如跳过控制台进入系统进行考数据。后来就想制作一个U盘启动的linux系统,以后做些东西就比较方便了,所以就研究了两个小时,下面是新萝卜官网制作的过程,以供大家分享。在进行mknod时,着实看了不少的英语文档,后来终于明白了。一.对U盘进行处理1.分区:(插上U盘)#fdisk /dev/sdbd Enter 删除原有分区n Enter 新建一个主分区w Enter 保存设置#
partprobe /dev/sdb 刷新U盘2.设定U盘分区为活动分区# fdisk /dev/sdba Enter
设定为活动分区1 Enter 选择分区3.对硬盘分区进行格式化,格式化成ext3格式# mkfs.ext3
/dev/sdb1二.装filesystem包 (目的:生成根下的root,usr,var
...等目录)1.配置好yum2.加载U盘到/net下# mount /dev/sdb1 /net3.安装# yum
-y install --installrot=/net
filesystem安装完成后,可查看/net下生成了多个目录三.加载系统启动项1.# cp
/boot/vmlinuz-2.6.18-128.el5 /net/boot/2.生成initrd.img `uname -r`为取系统版本号#
mkinitrd --with=usb-storage /net/boot/initrd-usb.img `uname
-r`3.查看/net/boot/下是否有vmlinuz和initrd四.制作boot loader(grub)1.# yum -y
install --installroot=/net grub2.grub.conf不成自动生成,要手工创建# cp
/boot/grub/grub.conf /net/boot/grub/grub.conf 并作修改# cat
/net/boot/grub.confdefault = 0timeout = 5title
redhat-usb-linuxroot(hd0,0)kernel /boot/vmlinuz-2.6.18-128.el5 ro
root=/dev/sdb1 init=/dev/bashinitrd
/boot/initrd-usb.img此处填写的内容要与/net/boot/grub/下的文件名一致五.安装命令库文件# yum -y
install --installroot=/net bash coreutils pam setup vim-enhanced vim-minimal
util-linux net-tools SysVinit passwd shadow-utils authconfig可通过rpm -qf
/bin/mount 查看包名此时chroot /net下可使用刚才安装的命令了六.创建磁盘分区# mknod /net/dev/sdb
b 8 16# mknod /net/dev/sdb1 b 8
17b表示块设备,8为主设备号,16、17为次设备号--------------------------| 有关设备号的解释:|
1.对于一块SCSI/SATA硬盘(格式为sd*),主设备号为8,| 第一块硬盘的次设备号为0-15,第二块硬盘的次设|
备号为16-31,依次类推。因为对于硬盘来说,主分| 区最多为4个,可以3个主分区1个扩展分区,扩展分|
区仍然可以再分区,但是分区的总数最多为16个,所| 以每一块硬盘的次设备号为16个(0-15,16-31)。|
2.对于一块IDE硬盘(格式为hd*),主设备号为3,次设| 备号第一块为0-63,第二块为64-127。| 3.# ls -l
/dev/sd*| brw-r----- 1 root disk 8, 0 10-16 14:53 /dev/sda| brw-r----- 1
root disk 8, 1 10-16 14:54 /dev/sda1| brw-r----- 1 root disk 8, 2 10-16
14:53 /dev/sda2| brw-r----- 1 root disk 8, 3 10-16 14:54 /dev/sda3|
brw-r----- 1 root disk 8, 16 10-16 15:50 /dev/sdb| brw-r----- 1 root disk 8,
17 10-16 15:50 /dev/sdb1| brw-r----- 1 root disk 8, 32 10-16 15:50
/dev/sdc| brw-r----- 1 root disk 8, 36 10-16 15:50 /dev/sdc4|
以上是我一台主机上插了1个硬盘,两个U盘的显示情况,我| 们可以看到设备号的显示情况。|
4.在linux中一切皆文件,硬件也是通过文件体现出来的,所| 有硬件设备都在/dev/有所显示。|
5.更具体的设备号研究可以查看下面的文件。| # yum install kernel-doc| #
/usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt---------------------------七.1.创建mtab#
cat /net/etc/mtab/dev/sdb1 / ext3 rw 0 02.创建fstab# cat
/net/etc/fstab/dev/sdb1 / ext3 default 1 1八.安装grub# chroot /net#
grub-install /dev/sdb1注:1.如果创建硬盘分区的时候没有配置正确,在第八步会报错:the file
/boot/grub/stage1 not read
correctly2.在用U盘启动后,进入到U盘中的系统,此时我们可以用已经安装过的命令集,但是此时的文件系统是只读的,我们不能vim,mount等的 *** 作,此时必须用下面这个命令,进行重新读写挂载:#
mount -o remount,rw /重挂载后,就可以了。
如果想通过ssh进入container,需要需要安装nsenter,安装步骤如下:wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
tar -zxf-cd util-linux-2.24
./configure –without-ncurses
make
cp nsenter /usr/local/bin/
这个地方有个坑,之前我写的是make &&make install,经阿里云的技术团队测试,make之后千万不能make install,make install后会替代 *** 作系统底层的一些东西,直接影响linux *** 作系统的启动,在阿里云上会导致ubuntu14.0.4不能启动,其实只需要把nsenter 复制到/usr/local/bin目录下即可。国内其他文档介绍安装nsenter的时候都没说明这些,在此特别写篇博客记录一下。
找到mysql容器的第一个进程的PID
PID=`docker inspect --format "{{ .State.Pid }}" mysql_1 `
然后渗入(需要root权限)
sudo nsenter --target $PID --mount --uts --ipc --net --pid
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)