Hi Michael, Am 31.07.2014 um 20:53 schrieb Michael Tokarev <m...@tls.msk.ru>:
> Control: tag -1 + moreinfo > > 31.07.2014 11:56, Zimmermann, Alexander wrote: >> Package: busybox >> Version: 1:1.22.0-6 >> Severity: important >> >> Dear Maintainer, >> >> we have a PXE environments in our lab, where we boot both physical boxes >> and XEN machines via NFS from one centralized Debian SID image. While >> the kernel/initramfs mounts the image correctly read only (I set a >> breakpoint just before switch_root get invoked) (see [1]), makes >> switch_root the NFS root read/write (see [2]). > > Very interesting. > > I can't reproduce this behavor here. I use remote root a lot, > also with PXE booting, and never saw a read-write root after > switch_root run. > > Looking at the source, it only does one mount(2) syscall: > > // Overmount / with newdir and chroot into it > if (mount(".", "/", NULL, MS_MOVE, NULL)) { > // For example, fails when newroot is not a mountpoint > bb_perror_msg_and_die("error moving root"); > > and that’s about it. We also scanned the source code yesterday quickly. At the first glance we also saw nothing special here. > So unless the kernel is broken, Good point. We use a patched vanilla kernel (see below). Maybe the patch is broken. > it > should not result in changing the mount flags in any way. > > And it definitely doesn't change flags when switch_root'ing to > a regular ext4 or other local filesystem (in a regular initramfs > which is used by almost all debian systems). > > Maybe you can describe your environment a bit more? Sure. PXE, DHCP and NFS is provided by a FreeBSD 10.0-Stable box. The PXE config is: SERIAL 0 9600 DEFAULT linux LABEL linux KERNEL ../kernel/vmlinuz-3.14.0.fas3270-aufs+ APPEND tsc=reliable acpi=off quiet root=/dev/nfs nfsroot=192.168.0.1:/usr/local/muclab/image/debian-sid ro boot=nfs root-ro=aufs ip=:::::eth4:dhcp console=ttyS0 initrd=../initrd/initrd.img-3.14.0.fas3270-aufs+ As you can see, we use a vanilla 3.14 Kernel, patched w/ official AUFS patch (see http://aufs.sourceforge.net) To enable/disable AUFS we use a patched version of the root-ro script (see https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash) in our initramfs. The script is located under /etc/initramfs-tools/scripts/init-bottom/. > Where do you set breakpoints? To ensure that the root-to script isn’t the culprit, I disabled it (and therefore AUFS too) via cmdline parameter root-ro=false and put a breakpoint right after (break=init). At the breakpoint, the NFS mount was still ro. I put another „breakpoint“ in /etc/rc3.d/S01* start script to verify the mount right after switch_root. Here, the mount was already rw. Let me double check that AUFS is not broken. I try to boot a vanilla kernel. I will come back to you w/ the results. Alex —- As a side note, if we boot w/ AUFS, the mount points are right. alexandz@two:/etc/initramfs-tools$ mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=2051429,mode=755) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1641472k,mode=755) 192.168.0.1:/usr/local/muclab/image/debian-sid on /mnt/root-ro type nfs (ro,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,nolock,proto=tcp,port=2049,timeo=7,retrans=10,sec=sys,local_lock=all,addr=192.168.0.1) tmpfs-root on /mnt/root-rw type tmpfs (rw,relatime) aufs-root on / type aufs (rw,relatime,si=b2127ecf3bdae6c7) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=3282940k) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=3282940k) 192.168.0.1:/usr/local/muclab/boot on /mnt/boot type nfs (rw,nosuid,nodev,noatime,vers=3,rsize=8192,wsize=8192,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.1,mountvers=3,mountport=945,mountproto=udp,fsc,local_lock=all,addr=192.168.0.1) rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw,relatime) /etc/auto.home on /home type autofs (rw,relatime,fd=6,pgrp=1894,timeout=300,minproto=5,maxproto=5,indirect) 192.168.0.1:/usr/home/puneeth on /home/puneeth type nfs (rw,noatime,vers=3,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.1,mountvers=3,mountport=945,mountproto=tcp,local_lock=none,addr=192.168.0.1) 192.168.0.1:/usr/home/alexandz on /home/alexandz type nfs (rw,noatime,vers=3,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.1,mountvers=3,mountport=945,mountproto=tcp,local_lock=none,addr=192.168.0.1) > > Thanks, > > /mjt
signature.asc
Description: Message signed with OpenPGP using GPGMail