fprintf(flog, "Source drive: %s\n", sourcedrive);
fclose(handle);
- snprintf(cdromparams.devnode, STRING_SIZE, "/dev/%s", sourcedrive);
- cdromparams.module = 0;
- fprintf(flog, "Source device: %s\n", cdromparams.devnode);
+ //snprintf(cdromparams.devnode_disk, STRING_SIZE, "/dev/%s", sourcedrive);
+ fprintf(flog, "Source device: %s\n", sourcedrive);
}
/* Configure the network now! */
}
}
- /* Get device for the HD. This has to succeed. */
- if (!(hdletter = findidetype(IDE_HD)))
- {
- /* Need to clean this up at some point */
- if (!try_scsi("sda") || strstr(sourcedrive, "sda") != NULL) {
- if (!try_scsi("ida/c0d0")) {
- if (!try_scsi("cciss/c0d0")) {
- if (!try_scsi("rd/c0d0")) {
- if (!try_scsi("ataraid/d0")) {
- errorbox(ctr[TR_NO_HARDDISK]);
- goto EXIT;
- } else {
- raid_disk = 1;
- sprintf(harddrive, "ataraid/d0");
- }
- } else {
- raid_disk = 1;
- sprintf(harddrive, "rd/c0d0");
- }
- } else {
- raid_disk = 1;
- sprintf(harddrive, "cciss/c0d0");
- }
- } else {
- raid_disk = 1;
- sprintf(harddrive, "ida/c0d0");
- }
- } else {
- if (strstr(sourcedrive, "sda") != NULL) {
- // probably installing from usb stick, try sdb
- if (try_scsi("sdb")) {
- sprintf(harddrive, "sdb");
- }
- else {
- errorbox(ctr[TR_NO_HARDDISK]);
- goto EXIT;
- }
- }
- else {
- sprintf(harddrive, "sda");
- }
- }
- scsi_disk = 1;
- } else
+ // Now try to find destination device...
+ if ((hdletter = findidetype(IDE_HD))) {
sprintf(harddrive, "hd%c", hdletter);
-
- fprintf(flog, "Destination drive: %s\n", harddrive);
-
+ goto FOUND_DESTINATION;
+ }
+
+ /* Need to clean this up at some point
+ scsi disk is sdb/sdc when sda/sdb is used for usb-key
+ if scsi-disk is sdd or more, it is not discovered
+ Support only 2 usb keys, none could be unplugged */
+ if (checkusb("sdb") && try_scsi("sdc")) {
+ scsi_disk = 1;
+ sprintf(harddrive, "sdc");
+ goto FOUND_DESTINATION;
+ }
+ if (checkusb("sda") && try_scsi("sdb")) {
+ scsi_disk = 1;
+ sprintf(harddrive, "sdb");
+ goto FOUND_DESTINATION;
+ }
+ if (try_scsi("sda")) {
+ scsi_disk = 1;
+ sprintf(harddrive, "sda");
+ goto FOUND_DESTINATION;
+ }
+ if (try_scsi("ida/c0d0")) {
+ raid_disk = 1;
+ sprintf(harddrive, "ida/c0d0");
+ goto FOUND_DESTINATION;
+ }
+ if (try_scsi("cciss/c0d0")) {
+ raid_disk = 1;
+ sprintf(harddrive, "cciss/c0d0");
+ goto FOUND_DESTINATION;
+ }
+ if (try_scsi("rd/c0d0")) {
+ raid_disk = 1;
+ sprintf(harddrive, "rd/c0d0");
+ goto FOUND_DESTINATION;
+ }
+ if (try_scsi("ataraid/d0")) {
+ raid_disk = 1;
+ sprintf(harddrive, "ataraid/d0");
+ goto FOUND_DESTINATION;
+ }
+ /* nothing worked, give up */
+ errorbox(ctr[TR_NO_HARDDISK]);
+ goto EXIT;
+
+ FOUND_DESTINATION:
/* load unattended configuration */
if (unattended) {
fprintf(flog, "unattended: Reading unattended.conf\n");
(void) readkeyvalues(unattendedkv, UNATTENDED_CONF);
}
-
- /* Make the hdparms struct and print the contents. */
- snprintf(hdparams.devnode, STRING_SIZE, "/dev/%s", harddrive);
- hdparams.module = 0;
-
- sprintf(message, ctr[TR_PREPARE_HARDDISK], hdparams.devnode);
+ /* Make the hdparms struct and print the contents.
+ With USB-KEY install and SCSI disk, while installing, the disk
+ is named 'sdb,sdc,...' (following keys)
+ On reboot, it will become 'sda'
+ To avoid many test, all names are built in the struct.
+ */
+ sprintf(hdparams.devnode_disk, "/dev/%s", harddrive);
+ /* Address the partition or raid partition (eg dev/sda or /dev/sdap1 */
+ sprintf(hdparams.devnode_part, "/dev/%s%s", harddrive,raid_disk ? "p" : "");
+ /* Now the names after the machine is booted. Only scsi is affected
+ and we only install on the first scsi disk. */
+ { char tmp[30];
+ strcpy(tmp, scsi_disk ? "sda" : harddrive);
+ sprintf(hdparams.devnode_disk_run, "/dev/%s", tmp);
+ sprintf(hdparams.devnode_part_run, "/dev/%s%s", tmp, raid_disk ? "p" : "");
+ }
+
+ fprintf(flog, "Destination drive: %s\n", hdparams.devnode_disk);
+
+ sprintf(message, ctr[TR_PREPARE_HARDDISK], hdparams.devnode_disk);
if (unattended) {
hardyn = 1;
}
-
while (! hardyn) {
rc = newtWinMenu(title, message,
50, 5, 5, 6, yesnoharddisk,
if (rc == 2)
goto EXIT;
}
-
if (rc == 2)
goto EXIT;
fclose(handle);
- snprintf(commandstring, STRING_SIZE, "/bin/sfdisk -L -uM %s < /tmp/partitiontable", hdparams.devnode);
+ snprintf(commandstring, STRING_SIZE, "/bin/sfdisk -L -uM %s < /tmp/partitiontable", hdparams.devnode_disk);
if (runcommandwithstatus(commandstring, ctr[TR_PARTITIONING_DISK]))
{
errorbox(ctr[TR_UNABLE_TO_PARTITION]);
mysystem("/sbin/udevstart");
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/bin/mke2fs -T ext2 -c %sp1", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/bin/mke2fs -T ext2 -c %s1", hdparams.devnode);
+ snprintf(commandstring, STRING_SIZE, "/bin/mke2fs -T ext2 -c %s1", hdparams.devnode_part);
if (runcommandwithstatus(commandstring, ctr[TR_MAKING_BOOT_FILESYSTEM]))
{
errorbox(ctr[TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM]);
}
if (swap_file) {
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/sbin/mkswap %sp2", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/sbin/mkswap %s2", hdparams.devnode);
+ snprintf(commandstring, STRING_SIZE, "/sbin/mkswap %s2", hdparams.devnode_part);
if (runcommandwithstatus(commandstring, ctr[TR_MAKING_SWAPSPACE]))
{
errorbox(ctr[TR_UNABLE_TO_MAKE_SWAPSPACE]);
}
}
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/sbin/mkreiserfs -f %sp3", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/sbin/mkreiserfs -f %s3", hdparams.devnode);
-
+ snprintf(commandstring, STRING_SIZE, "/sbin/mkreiserfs -f %s3", hdparams.devnode_part);
if (runcommandwithstatus(commandstring, ctr[TR_MAKING_ROOT_FILESYSTEM]))
{
errorbox(ctr[TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM]);
goto EXIT;
}
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/sbin/mkreiserfs -f %sp4", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/sbin/mkreiserfs -f %s4", hdparams.devnode);
-
+ snprintf(commandstring, STRING_SIZE, "/sbin/mkreiserfs -f %s4", hdparams.devnode_part);
if (runcommandwithstatus(commandstring, ctr[TR_MAKING_LOG_FILESYSTEM]))
{
errorbox(ctr[TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM]);
}
/* Mount harddisk. */
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/bin/mount %sp3 /harddisk", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/bin/mount %s3 /harddisk", hdparams.devnode);
+
+ snprintf(commandstring, STRING_SIZE, "/bin/mount %s3 /harddisk", hdparams.devnode_part);
if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_ROOT_FILESYSTEM]))
{
errorbox(ctr[TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM]);
mkdir("/harddisk/var", S_IRWXU|S_IRWXG|S_IRWXO);
mkdir("/harddisk/var/log", S_IRWXU|S_IRWXG|S_IRWXO);
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/bin/mount %sp1 /harddisk/boot", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/bin/mount %s1 /harddisk/boot", hdparams.devnode);
-
+ snprintf(commandstring, STRING_SIZE, "/bin/mount %s1 /harddisk/boot", hdparams.devnode_part);
if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_BOOT_FILESYSTEM]))
{
errorbox(ctr[TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM]);
goto EXIT;
}
if (swap_file) {
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/sbin/swapon %sp2", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/sbin/swapon %s2", hdparams.devnode);
+ snprintf(commandstring, STRING_SIZE, "/sbin/swapon %s2", hdparams.devnode_part);
if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_SWAP_PARTITION]))
{
errorbox(ctr[TR_UNABLE_TO_MOUNT_SWAP_PARTITION]);
goto EXIT;
}
}
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/bin/mount %sp4 /harddisk/var", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/bin/mount %s4 /harddisk/var", hdparams.devnode);
+ snprintf(commandstring, STRING_SIZE, "/bin/mount %s4 /harddisk/var", hdparams.devnode_part);
if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_LOG_FILESYSTEM]))
{
errorbox(ctr[TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM]);
"/bin/wget -q -O - %s/" SNAME "-" VERSION ".tbz2 | /bin/tar -C /harddisk -xvjf -", url);
}
- if (installtype == CDROM_INSTALL) {
+ if (installtype == CDROM_INSTALL) {
snprintf(commandstring, STRING_SIZE,
"/bin/tar -C /harddisk -xvjf /cdrom/" SNAME "-" VERSION ".tbz2");
}
}
/* Update /etc/fstab */
- replace("/harddisk/etc/fstab", "DEVICE", hdparams.devnode);
+ replace("/harddisk/etc/fstab", "DEVICE", hdparams.devnode_part_run);
/* if we detected SCSI/USB then fixup */
/* mysystem("/bin/probecntrl.sh");
}
} */
- if (raid_disk)
- sprintf(string, "root=%sp3", hdparams.devnode);
- else
- sprintf(string, "root=%s3", hdparams.devnode);
+ sprintf(string, "root=%s3", hdparams.devnode_part_run);
replace( "/harddisk/boot/grub/grub.conf", "root=ROOT", string);
- replace( "/harddisk/boot/grub/grubbatch", "DEVICE", hdparams.devnode);
+ replace( "/harddisk/boot/grub/grubbatch", "DEVICE", hdparams.devnode_disk);
/* restore permissions */
chmod("/harddisk/boot/grub/grubbatch", S_IXUSR | S_IRUSR | S_IXGRP | S_IRGRP | S_IXOTH | S_IROTH);
fcloseall();
if (swap_file) {
- if (raid_disk)
- snprintf(commandstring, STRING_SIZE, "/bin/swapoff %sp2", hdparams.devnode);
- else
- snprintf(commandstring, STRING_SIZE, "/bin/swapoff %s2", hdparams.devnode);
+ snprintf(commandstring, STRING_SIZE, "/bin/swapoff %s2", hdparams.devnode_part);
}
newtFinished();
if (strcmp(argv[1], "tripwirelog")==0)
{
- char log;
- snprintf(command, BUFFER_SIZE-1, "/usr/sbin/twprint -m r --twrfile /var/ipfire/tripwire/report/%s", argv[2]);
- log=safe_system(command);
- printf(command);
- return(log);
+ snprintf(command, BUFFER_SIZE-1, "/usr/sbin/twprint -m r --cfgfile /var/ipfire/tripwire/tw.cfg --twrfile /var/ipfire/tripwire/report/%s", argv[2]);
+ safe_system(command);
+ return 0;
}
if (strcmp(argv[1], "generatereport")==0)
{
- safe_system("/usr/sbin/tripwire --check --cfgfile /var/ipfire/tripwire/tw.cfg --polfile /var/ipfire/tripwire/tw.cfg");
- printf(command);
+ safe_system("/usr/sbin/tripwire --check --cfgfile /var/ipfire/tripwire/tw.cfg --polfile /var/ipfire/tripwire/tw.pol");
return 0;
}
if (strcmp(argv[1], "updatedatabase")==0)
{
- char file;
- file=safe_system("ls -S | tail -1");
- snprintf(command, BUFFER_SIZE-1, "/usr/sbin/tripwire --update --accept-all --cfgfile /var/ipfire/tripwire/tw.cfg --polfile /var/ipfire/tripwire/tw.cfg --local-passphrase %s --twrfile %s", argv[2], file);
+ snprintf(command, BUFFER_SIZE-1, "/usr/sbin/tripwire --update --accept-all --cfgfile /var/ipfire/tripwire/tw.cfg --polfile /var/ipfire/tripwire/tw.pol --local-passphrase %s --twrfile %s", argv[2], argv[3]);
safe_system(command);
- printf(command);
return 0;
}
if (strcmp(argv[1], "keys")==0)
{
+ printf("\nGenerating Site-Key");
snprintf(command, BUFFER_SIZE-1, "rm -rf /var/ipfire/tripwire/site.key && /usr/sbin/twadmin --generate-keys --site-keyfile /var/ipfire/tripwire/site.key --site-passphrase %s && chmod 640 /var/ipfire/tripwire/site.key", argv[2]);
safe_system(command);
- printf(command);
- snprintf(command, BUFFER_SIZE-1, "rm -rf /var/ipfire/tripwire/$(HOSTNAME)-local.key && /usr/sbin/twadmin --generate-keys --local-keyfile /var/ipfire/tripwire/$(HOSTNAME)-local.key --local-passphrase %s && chmod 640 /var/ipfire/tripwire/$(HOSTNAME)-local.key", argv[3]);
+ printf("\nGenerating Local-Key");
+ snprintf(command, BUFFER_SIZE-1, "rm -rf /var/ipfire/tripwire/local.key && /usr/sbin/twadmin --generate-keys --local-keyfile /var/ipfire/tripwire/local.key --local-passphrase %s && chmod 640 /var/ipfire/tripwire/local.key", argv[3]);
safe_system(command);
- printf(command);
+ printf("\nGenerating Config File");
snprintf(command, BUFFER_SIZE-1, "rm -rf /var/ipfire/tripwire/tw.cfg && /usr/sbin/twadmin --create-cfgfile --cfgfile /var/ipfire/tripwire/tw.cfg --site-keyfile /var/ipfire/tripwire/site.key --site-passphrase %s /var/ipfire/tripwire/twcfg.txt && chmod 640 /var/ipfire/tripwire/tw.cfg", argv[2]);
safe_system(command);
- printf(command);
+ printf("\nGenerating Policy File");
snprintf(command, BUFFER_SIZE-1, "rm -rf /var/ipfire/tripwire/tw.pol && /usr/sbin/twadmin --create-polfile --cfgfile /var/ipfire/tripwire/tw.cfg --site-keyfile /var/ipfire/tripwire/site.key --site-passphrase %s /var/ipfire/tripwire/twpol.txt && chmod 640 /var/ipfire/tripwire/tw.pol", argv[2]);
safe_system(command);
- printf(command);
- snprintf(command, BUFFER_SIZE-1, "/usr/sbin/tripwire --init --cfgfile /var/ipfire/tripwire/tw.cfg --polfile /var/ipfire/tripwire/tw.cfg --site-passphrase %s", argv[2]);
+ printf("\nInitialising - This may take a while depending on your Policy");
+ snprintf(command, BUFFER_SIZE-1, "/usr/sbin/tripwire --init --cfgfile /var/ipfire/tripwire/tw.cfg --polfile /var/ipfire/tripwire/tw.pol --local-passphrase %s", argv[3]);
safe_system(command);
- printf(command);
return 0;
}
if (strcmp(argv[1], "generatepolicy")==0)
{
+ printf("\nGenerating Policy File");
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/twadmin --generate-polfile --site-keyfile /var/ipfire/tripwire/site.key --site-passphrase %s --polfile /var/ipfire/tripwire/tw.pol --cfgfile /var/ipfire/tripwire/tw.cfg /var/ipfire/tripwire/twpol.txt", argv[2]);
safe_system(command);
- printf(command);
- snprintf(command, BUFFER_SIZE-1, "/usr/sbin/tripwire --init -c /var/ipfire/tripwire/tw.cfg -p /var/ipfire/tripwire/tw.cfg --site-passphrase %s", argv[2]);
+ printf("\nInitialising - This may take a while depending on your Policy");
+ snprintf(command, BUFFER_SIZE-1, "/usr/sbin/tripwire --init -c /var/ipfire/tripwire/tw.cfg -p /var/ipfire/tripwire/tw.cfg --local-passphrase %s", argv[3]);
safe_system(command);
- printf(command);
return 0;
}
if (strcmp(argv[1], "resetpolicy")==0)
{
+ printf("\nGenerating Policy File");
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/twadmin --generate-polfile --site-keyfile /var/ipfire/tripwire/site.key --site-passphrase %s --polfile /var/ipfire/tripwire/tw.pol --cfgfile /var/ipfire/tripwire/tw.cfg /var/ipfire/tripwire/twpol.default", argv[2]);
safe_system(command);
- printf(command);
- snprintf(command, BUFFER_SIZE-1, "/usr/sbin/tripwire --init -c /var/ipfire/tripwire/tw.cfg -p /var/ipfire/tripwire/tw.cfg --site-passphrase %s", argv[2]);
+ printf("\nInitialising - This may take a while depending on your Policy");
+ snprintf(command, BUFFER_SIZE-1, "/usr/sbin/tripwire --init -c /var/ipfire/tripwire/tw.cfg -p /var/ipfire/tripwire/tw.cfg --local-passphrase %s", argv[3]);
safe_system(command);
- printf(command);
return 0;
}
if (strcmp(argv[1], "readconfig")==0)
{
safe_system("/bin/chown nobody:nobody /var/ipfire/tripwire/twcfg.txt");
- printf(command);
return 0;
}
if (strcmp(argv[1], "lockconfig")==0)
{
safe_system("/bin/chown root:root /var/ipfire/tripwire/twcfg.txt");
- printf(command);
return 0;
}
+return 0;
}
\ No newline at end of file