Bug 26649

Summary: diskless client can't share root with server
Product: Base System Reporter: bbauman <bbauman>
Component: miscAssignee: Ceri Davies <ceri>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description bbauman 2001-04-17 17:30:01 UTC
The rc.diskless2 script creates a /dev on the client by doing a mount_mfs followed by a cpio of the server's /dev. This won't work 
because /dev/zero can't be copied to the client's /dev since it 
provides an infinite supply of data. Other devices have similar
problems.

Fix: 

Rather than using cpio, we copy MAKEDEV to /tmp, then mount_mfs, then
MAKEDEV the appropriate device nodes in the client's /dev. Works like 
a charm and allows you reduce the clutter in the diskless client's /dev.

DEVFS would have been a possible solution for us, but we use dhclient on the diskless clients. dhclient relies on bpf, and bpf won't work
with DEVFS, so although it is a more elegant solution, it wouldn't
work for us.
How-To-Repeat: Share the root filesystem between the boot server and client in a diskless configuration. No workee.
Comment 1 Peter Pentchev 2001-04-18 08:10:15 UTC
Eh?  cpio copies device files just fine - it does a lstat() on the file name,
detects a device, then does a mknod() when recreating the filesystem.

[root@ringworld:v0 ~/tmp/dv]# (cd /; find -x dev | cpio -o -H newc) | cpio -i -H newc -d
557 blocks
557 blocks
[root@ringworld:v0 ~/tmp/dv]# du dev
1       ./dev/fd
195     ./dev
[root@ringworld:v0 ~/tmp/dv]# du /dev
1       /dev/fd
195     /dev
[root@ringworld:v0 ~/tmp/dv]#

Seems to work for me..

G'luck,
Peter

-- 
If this sentence were in Chinese, it would say something else.

On Tue, Apr 17, 2001 at 09:20:57AM -0700, bbauman@wgate.com wrote:
> 
> >Number:         26649
> >Category:       misc
> >Synopsis:       diskless client can't share root with server
> >Originator:     Bruce Bauman
> >Release:        4.3-RC
> >Organization:
> WorldGate Communications
> >Environment:
> >Description:
> The rc.diskless2 script creates a /dev on the client by doing a mount_mfs followed by a cpio of the server's /dev. This won't work 
> because /dev/zero can't be copied to the client's /dev since it 
> provides an infinite supply of data. Other devices have similar
> problems.
> >How-To-Repeat:
> Share the root filesystem between the boot server and client in a diskless configuration. No workee.
> >Fix:
> Rather than using cpio, we copy MAKEDEV to /tmp, then mount_mfs, then
> MAKEDEV the appropriate device nodes in the client's /dev. Works like 
> a charm and allows you reduce the clutter in the diskless client's /dev.
> 
> DEVFS would have been a possible solution for us, but we use dhclient on the diskless clients. dhclient relies on bpf, and bpf won't work
> with DEVFS, so although it is a more elegant solution, it wouldn't
> work for us.
Comment 2 bbauman 2001-04-18 13:57:53 UTC
My colleague just pointed out that it's an NFS mounted /dev, so cpio
can't figure out that it's a device. In any case, it doesn't work.

-----Original Message-----
From: Peter Pentchev [mailto:roam@orbitel.bg]
Sent: Wednesday, April 18, 2001 3:10 AM
To: bbauman@wgate.com
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: misc/26649: diskless client can't share root with server


Eh?  cpio copies device files just fine - it does a lstat() on the file
name,
detects a device, then does a mknod() when recreating the filesystem.

[root@ringworld:v0 ~/tmp/dv]# (cd /; find -x dev | cpio -o -H newc) | cpio
-i -H newc -d
557 blocks
557 blocks
[root@ringworld:v0 ~/tmp/dv]# du dev
1       ./dev/fd
195     ./dev
[root@ringworld:v0 ~/tmp/dv]# du /dev
1       /dev/fd
195     /dev
[root@ringworld:v0 ~/tmp/dv]#

Seems to work for me..

G'luck,
Peter

-- 
If this sentence were in Chinese, it would say something else.

On Tue, Apr 17, 2001 at 09:20:57AM -0700, bbauman@wgate.com wrote:
> 
> >Number:         26649
> >Category:       misc
> >Synopsis:       diskless client can't share root with server
> >Originator:     Bruce Bauman
> >Release:        4.3-RC
> >Organization:
> WorldGate Communications
> >Environment:
> >Description:
> The rc.diskless2 script creates a /dev on the client by doing a mount_mfs
followed by a cpio of the server's /dev. This won't work 
> because /dev/zero can't be copied to the client's /dev since it 
> provides an infinite supply of data. Other devices have similar
> problems.
> >How-To-Repeat:
> Share the root filesystem between the boot server and client in a diskless
configuration. No workee.
> >Fix:
> Rather than using cpio, we copy MAKEDEV to /tmp, then mount_mfs, then
> MAKEDEV the appropriate device nodes in the client's /dev. Works like 
> a charm and allows you reduce the clutter in the diskless client's /dev.
> 
> DEVFS would have been a possible solution for us, but we use dhclient on
the diskless clients. dhclient relies on bpf, and bpf won't work
> with DEVFS, so although it is a more elegant solution, it wouldn't
> work for us.
Comment 3 iedowse freebsd_committer freebsd_triage 2002-11-03 17:49:12 UTC
State Changed
From-To: open->feedback


Is this problem still present with more recent releases?
Comment 4 Ceri Davies freebsd_committer freebsd_triage 2003-06-08 19:01:22 UTC
State Changed
From-To: feedback->closed

Feedback timeout (6 months or more). 
I will handle any feedback that this closure generates. 


Comment 5 Ceri Davies freebsd_committer freebsd_triage 2003-06-08 19:01:22 UTC
Responsible Changed
From-To: freebsd-bugs->ceri

Feedback timeout (6 months or more). 
I will handle any feedback that this closure generates.