32 lines
		
	
	
		
			460 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			460 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| newroot.c
 | |
| 
 | |
| Replace the current root with a new one
 | |
| */
 | |
| 
 | |
| #include <errno.h>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| #include <unistd.h>
 | |
| 
 | |
| int main(int argc, char *argv[])
 | |
| {
 | |
| 	int r;
 | |
| 	char *dev;
 | |
| 
 | |
| 	if (argc != 2)
 | |
| 	{
 | |
| 		fprintf(stderr, "Usage: newroot <block-special>\n");
 | |
| 		exit(1);
 | |
| 	}
 | |
| 	dev= argv[1];
 | |
| 	r= mount(dev, "/", 0 /* !ro */);
 | |
| 	if (r != 0)
 | |
| 	{
 | |
| 		fprintf(stderr, "newroot: mount failed: %s\n", strerror(errno));
 | |
| 		exit(1);
 | |
| 	}
 | |
| 	return 0;
 | |
| }
 | 
